edfcore 0.4.434 → 0.4.436

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.434";
112
+ export declare const VERSION = "0.4.436";
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.434';
82
+ export const VERSION = '0.4.436';
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.436
10
+
11
+ - **Added** tests that a real `AbortSignal` reaches `fetch` and a bare `{ aborted }` shim never
12
+ does. `FetchLike` deliberately does not name `signal` — naming it would pull the DOM
13
+ `AbortSignal` into the published types by parameter contravariance, the exact dependency the
14
+ structural shims exist to avoid — so the signal is handed over at runtime, on one line.
15
+ - Both halves matter and they fail differently. Attaching a shim is loud: the platform `fetch`
16
+ throws a `TypeError` on an init whose `signal` is not an `AbortSignal`, so every request from a
17
+ caller using the published `AbortSignalLike` type would fail at once. Not attaching a real one is
18
+ silent, and that is the half nothing had exercised — no test had ever given `httpSource` a
19
+ genuine `AbortSignal`.
20
+ - Without the attach, `throwIfSignalAborted` still rejects the caller's promise at the next poll,
21
+ so an abort looks like it worked, while the request runs to completion. On a range covering a few
22
+ hundred megabytes that is the difference between cancelling a transfer and paying for it, and the
23
+ only visible symptom is a bill, or a phone that stays warm after the user navigated away.
24
+ - The caller's own signal object has to be the one attached, not a copy, or aborting theirs aborts
25
+ nothing. A source-level signal and a per-read one are both checked, since the page documents the
26
+ first as the default for every request and the second as winning over it.
27
+
28
+ ## 0.4.435
29
+
30
+ - **Added** a check that the announce script cuts one release and that a dry run cuts none.
31
+ `npm run announce` is the last step of every batch and the only command here that writes to
32
+ GitHub. Everything else — the bump, the commit, the tag, the publish — is either reversible or
33
+ gated by `npm run check`. A release is neither: it is public the moment it exists, it notifies
34
+ watchers, and a second one over the same range is not something anyone undoes quietly.
35
+ - Three properties keep that safe and none was checked. Exactly one mutating call, because one
36
+ release per version is precisely what this script replaced and a per-version loop reintroduced by
37
+ someone would look like a fix. A dry run that exits rather than falling through, or the flag
38
+ people use to preview a batch would announce it. And a refusal to announce past a tag with no
39
+ changelog entry, because the notes *are* the changelog entries — a missing one produces a release
40
+ whose body skips a version, in the one artefact a reader trusts to be complete.
41
+ - The title is pinned too: `edfcore <first>–<last>` with an en dash, dropping the range for a
42
+ single version, cut on the newest tag so it points at the code the range ends with. A small thing
43
+ to get wrong and a permanent one, since release titles are what the release list looks like
44
+ forever.
45
+
9
46
  ## 0.4.434
10
47
 
11
48
  - **Added** a check that asking a source for nothing costs nothing, in every adapter. A zero-length
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.434",
3
+ "version": "0.4.436",
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.434';
96
+ export const VERSION = '0.4.436';