edfcore 0.3.83 → 0.3.84

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/CHANGELOG.md CHANGED
@@ -6,6 +6,26 @@ 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.3.84
10
+
11
+ - **Fixed** four statements that the `node:` import lives in exactly one file. `src/cli.ts` imports
12
+ `node:fs/promises` and `node:process` and ships as the package's `bin`.
13
+ - `src/node.ts` called itself "the ONLY module in edfcore that imports anything from `node:`" and
14
+ said "keeping the import in exactly one file" is what makes the browser build work.
15
+ `installation.md` repeated both. The invariant the packaging test actually checks is narrower and
16
+ is the one that matters: nothing **reachable from the universal entry** imports `node:`, which
17
+ is why `edfcore` bundles for a browser without a polyfill.
18
+ - The `bin` program is a Node program by definition and no import path reaches it, so the code is
19
+ right and only the claims were wrong. All four now state the reachability rule, and
20
+ `installation.md` names the CLI's imports outright rather than leaving a reader to discover a
21
+ fourth published entry that contradicts the page.
22
+ - **Also fixed** `src/node.ts` saying "edfcore has no other lifetime mechanism in v0.1". Because
23
+ `tsconfig.build.json` keeps comments, that sentence ships in `dist/node.d.ts` as the hover text
24
+ for `fileHandleSource` — the same "v0.1" scoping 0.3.64 removed from three website pages, still
25
+ reaching every consumer of the subpath.
26
+ - The version guard from 0.3.53 swept the website only. It now sweeps `src/` too, since those
27
+ docblocks are published, and it catches the exact sentence this release removed.
28
+
9
29
  ## 0.3.83
10
30
 
11
31
  - **Fixed** two pages calling `buildRecordIndex` "the only function in edfcore that reads the whole
@@ -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.3.83";
112
+ export declare const VERSION = "0.3.84";
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.3.83';
82
+ export const VERSION = '0.3.84';
83
83
  //# sourceMappingURL=constants.js.map
package/dist/node.d.ts CHANGED
@@ -1,9 +1,15 @@
1
1
  /**
2
- * The Node adapters — the ONLY module in edfcore that imports anything from `node:`.
2
+ * The Node adapters — the only module REACHABLE FROM THE UNIVERSAL ENTRY that imports anything
3
+ * from `node:`.
3
4
  *
4
- * Layer 7, published as `edfcore/node`. Keeping the import in exactly one file is what lets the
5
- * universal entry (`edfcore`) be bundled for a browser without a polyfill and without a
6
- * resolution alias, and a packaging test greps the built universal bundle for `node:` to prove it.
5
+ * Layer 7, published as `edfcore/node`. Keeping it out of everything `edfcore` can reach is what
6
+ * lets the universal entry be bundled for a browser without a polyfill and without a resolution
7
+ * alias, and a packaging test greps the built universal bundle for `node:` to prove exactly that.
8
+ *
9
+ * Not "the only file in the package": `src/cli.ts` imports `node:fs/promises` and `node:process`
10
+ * and ships as the `bin` entry, which is a Node program by definition and is reachable from no
11
+ * import path. This said "the ONLY module in edfcore" until 0.3.84, and the sentence shipped in
12
+ * `dist/node.d.ts` as the hover text for this subpath.
7
13
  *
8
14
  * Two decisions are load-bearing.
9
15
  *
@@ -59,7 +65,7 @@ export interface FileHandleLike {
59
65
  * opened, while a caller wrapping a handle it already had may know something better (a range it
60
66
  * intends to expose, a size it verified). Neither is guessed here.
61
67
  *
62
- * `close()` closes the handle. edfcore has no other lifetime mechanism in v0.1
68
+ * `close()` closes the handle. edfcore has no other lifetime mechanism yet
63
69
  * `Symbol.asyncDispose` is not Baseline yet — so a caller that opened a file is the one that
64
70
  * closes it.
65
71
  */
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,YAAY,CAAC;AAE1D;;;;;;GAMG;AACH,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CACF,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAYD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,CAgCvF;AAED;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAqBlE"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,YAAY,CAAC;AAE1D;;;;;;GAMG;AACH,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CACF,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAYD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,CAgCvF;AAED;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAqBlE"}
package/dist/node.js CHANGED
@@ -1,9 +1,15 @@
1
1
  /**
2
- * The Node adapters — the ONLY module in edfcore that imports anything from `node:`.
2
+ * The Node adapters — the only module REACHABLE FROM THE UNIVERSAL ENTRY that imports anything
3
+ * from `node:`.
3
4
  *
4
- * Layer 7, published as `edfcore/node`. Keeping the import in exactly one file is what lets the
5
- * universal entry (`edfcore`) be bundled for a browser without a polyfill and without a
6
- * resolution alias, and a packaging test greps the built universal bundle for `node:` to prove it.
5
+ * Layer 7, published as `edfcore/node`. Keeping it out of everything `edfcore` can reach is what
6
+ * lets the universal entry be bundled for a browser without a polyfill and without a resolution
7
+ * alias, and a packaging test greps the built universal bundle for `node:` to prove exactly that.
8
+ *
9
+ * Not "the only file in the package": `src/cli.ts` imports `node:fs/promises` and `node:process`
10
+ * and ships as the `bin` entry, which is a Node program by definition and is reachable from no
11
+ * import path. This said "the ONLY module in edfcore" until 0.3.84, and the sentence shipped in
12
+ * `dist/node.d.ts` as the hover text for this subpath.
7
13
  *
8
14
  * Two decisions are load-bearing.
9
15
  *
@@ -44,7 +50,7 @@ const fs = nodeFsPromises;
44
50
  * opened, while a caller wrapping a handle it already had may know something better (a range it
45
51
  * intends to expose, a size it verified). Neither is guessed here.
46
52
  *
47
- * `close()` closes the handle. edfcore has no other lifetime mechanism in v0.1
53
+ * `close()` closes the handle. edfcore has no other lifetime mechanism yet
48
54
  * `Symbol.asyncDispose` is not Baseline yet — so a caller that opened a file is the one that
49
55
  * closes it.
50
56
  */
package/dist/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,4FAA4F;AAC5F,2FAA2F;AAC3F,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAoClF,MAAM,EAAE,GAAmB,cAA2C,CAAC;AAEvE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAsB,EAAE,UAAkB;IACzE,OAAO;QACL,UAAU;QACV,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,MAAc,EAAE,OAAqB;YAC9D,cAAc,CAAC,OAAO,CAAC,CAAC;YACxB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAC5C,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,OAAO,MAAM,GAAG,MAAM,EAAE,CAAC;gBACvB,cAAc,CAAC,OAAO,CAAC,CAAC;gBACxB,wFAAwF;gBACxF,0DAA0D;gBAC1D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;gBAC1F,mFAAmF;gBACnF,4EAA4E;gBAC5E,IAAI,SAAS,IAAI,CAAC;oBAAE,MAAM;gBAC1B,MAAM,IAAI,SAAS,CAAC;YACtB,CAAC;YACD,0FAA0F;YAC1F,4FAA4F;YAC5F,oFAAoF;YACpF,yFAAyF;YACzF,qEAAqE;YACrE,cAAc,CAAC,OAAO,CAAC,CAAC;YACxB,OAAO,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;QACD,KAAK,CAAC,KAAK;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,cAAc,CACtB,yDAAyD,UAAU,aAAa;gBAC9E,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+DAA+D;gBACtF,iFAAiF,EACnF,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,CAClC,CAAC;QACJ,CAAC;QACD,OAAO,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wFAAwF;QACxF,0FAA0F;QAC1F,kFAAkF;QAClF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,4FAA4F;AAC5F,2FAA2F;AAC3F,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAoClF,MAAM,EAAE,GAAmB,cAA2C,CAAC;AAEvE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAsB,EAAE,UAAkB;IACzE,OAAO;QACL,UAAU;QACV,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,MAAc,EAAE,OAAqB;YAC9D,cAAc,CAAC,OAAO,CAAC,CAAC;YACxB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAC5C,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,OAAO,MAAM,GAAG,MAAM,EAAE,CAAC;gBACvB,cAAc,CAAC,OAAO,CAAC,CAAC;gBACxB,wFAAwF;gBACxF,0DAA0D;gBAC1D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;gBAC1F,mFAAmF;gBACnF,4EAA4E;gBAC5E,IAAI,SAAS,IAAI,CAAC;oBAAE,MAAM;gBAC1B,MAAM,IAAI,SAAS,CAAC;YACtB,CAAC;YACD,0FAA0F;YAC1F,4FAA4F;YAC5F,oFAAoF;YACpF,yFAAyF;YACzF,qEAAqE;YACrE,cAAc,CAAC,OAAO,CAAC,CAAC;YACxB,OAAO,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;QACD,KAAK,CAAC,KAAK;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,cAAc,CACtB,yDAAyD,UAAU,aAAa;gBAC9E,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+DAA+D;gBACtF,iFAAiF,EACnF,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,CAClC,CAAC;QACJ,CAAC;QACD,OAAO,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wFAAwF;QACxF,0FAA0F;QAC1F,kFAAkF;QAClF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.3.83",
3
+ "version": "0.3.84",
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.3.83';
96
+ export const VERSION = '0.3.84';
package/src/node.ts CHANGED
@@ -1,9 +1,15 @@
1
1
  /**
2
- * The Node adapters — the ONLY module in edfcore that imports anything from `node:`.
2
+ * The Node adapters — the only module REACHABLE FROM THE UNIVERSAL ENTRY that imports anything
3
+ * from `node:`.
3
4
  *
4
- * Layer 7, published as `edfcore/node`. Keeping the import in exactly one file is what lets the
5
- * universal entry (`edfcore`) be bundled for a browser without a polyfill and without a
6
- * resolution alias, and a packaging test greps the built universal bundle for `node:` to prove it.
5
+ * Layer 7, published as `edfcore/node`. Keeping it out of everything `edfcore` can reach is what
6
+ * lets the universal entry be bundled for a browser without a polyfill and without a resolution
7
+ * alias, and a packaging test greps the built universal bundle for `node:` to prove exactly that.
8
+ *
9
+ * Not "the only file in the package": `src/cli.ts` imports `node:fs/promises` and `node:process`
10
+ * and ships as the `bin` entry, which is a Node program by definition and is reachable from no
11
+ * import path. This said "the ONLY module in edfcore" until 0.3.84, and the sentence shipped in
12
+ * `dist/node.d.ts` as the hover text for this subpath.
7
13
  *
8
14
  * Two decisions are load-bearing.
9
15
  *
@@ -81,7 +87,7 @@ const fs: NodeFsPromises = nodeFsPromises as unknown as NodeFsPromises;
81
87
  * opened, while a caller wrapping a handle it already had may know something better (a range it
82
88
  * intends to expose, a size it verified). Neither is guessed here.
83
89
  *
84
- * `close()` closes the handle. edfcore has no other lifetime mechanism in v0.1
90
+ * `close()` closes the handle. edfcore has no other lifetime mechanism yet
85
91
  * `Symbol.asyncDispose` is not Baseline yet — so a caller that opened a file is the one that
86
92
  * closes it.
87
93
  */