edfcore 0.3.83 → 0.3.85
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 +39 -0
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/node.d.ts +11 -5
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +11 -5
- package/dist/node.js.map +1 -1
- package/package.json +1 -1
- package/src/constants.ts +1 -1
- package/src/node.ts +11 -5
package/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.3.85
|
|
10
|
+
|
|
11
|
+
- **Fixed** four pages denying a comparison the test suite performs on every run.
|
|
12
|
+
- `api-primitives.md` — the page a caller reads to decide whether to trust the pinned scaling
|
|
13
|
+
expression — said the float64 parity with pyEDFlib "isn't yet demonstrated by a golden-value
|
|
14
|
+
harness, so treat it as intent rather than a measured guarantee". `api-validate.md` and
|
|
15
|
+
`validation.md` said edfcore's output "has not been compared element by element" against
|
|
16
|
+
pyEDFlib or MNE. `comparison.md` said validation against the public corpora "has not happened
|
|
17
|
+
yet".
|
|
18
|
+
- `tests/corpus/golden-values.test.ts` writes its fixtures with pyEDFlib's own writer, reads them
|
|
19
|
+
back with pyEDFlib, and compares every physical sample against the IEEE-754 bits it produced
|
|
20
|
+
using `Object.is` — a one-ULP difference fails. `mne-parity.test.ts` does the same for MNE. The
|
|
21
|
+
goldens are committed, so both run on a fresh clone. The harness has existed since 0.2.34-0.2.48.
|
|
22
|
+
- The pages now say what is measured and what is not, and `comparison.md` says plainly that the
|
|
23
|
+
corpus tests SKIP without `npm run corpus:fetch` — so a fresh clone proves the golden comparison
|
|
24
|
+
and not the corpus one. Understating a guarantee is still a false statement about the package.
|
|
25
|
+
- Same class as 0.3.64, which removed this wording from three other pages and missed these four. The
|
|
26
|
+
guard now sweeps every page for both retired phrasings.
|
|
27
|
+
|
|
28
|
+
## 0.3.84
|
|
29
|
+
|
|
30
|
+
- **Fixed** four statements that the `node:` import lives in exactly one file. `src/cli.ts` imports
|
|
31
|
+
`node:fs/promises` and `node:process` and ships as the package's `bin`.
|
|
32
|
+
- `src/node.ts` called itself "the ONLY module in edfcore that imports anything from `node:`" and
|
|
33
|
+
said "keeping the import in exactly one file" is what makes the browser build work.
|
|
34
|
+
`installation.md` repeated both. The invariant the packaging test actually checks is narrower and
|
|
35
|
+
is the one that matters: nothing **reachable from the universal entry** imports `node:`, which
|
|
36
|
+
is why `edfcore` bundles for a browser without a polyfill.
|
|
37
|
+
- The `bin` program is a Node program by definition and no import path reaches it, so the code is
|
|
38
|
+
right and only the claims were wrong. All four now state the reachability rule, and
|
|
39
|
+
`installation.md` names the CLI's imports outright rather than leaving a reader to discover a
|
|
40
|
+
fourth published entry that contradicts the page.
|
|
41
|
+
- **Also fixed** `src/node.ts` saying "edfcore has no other lifetime mechanism in v0.1". Because
|
|
42
|
+
`tsconfig.build.json` keeps comments, that sentence ships in `dist/node.d.ts` as the hover text
|
|
43
|
+
for `fileHandleSource` — the same "v0.1" scoping 0.3.64 removed from three website pages, still
|
|
44
|
+
reaching every consumer of the subpath.
|
|
45
|
+
- The version guard from 0.3.53 swept the website only. It now sweeps `src/` too, since those
|
|
46
|
+
docblocks are published, and it catches the exact sentence this release removed.
|
|
47
|
+
|
|
9
48
|
## 0.3.83
|
|
10
49
|
|
|
11
50
|
- **Fixed** two pages calling `buildRecordIndex` "the only function in edfcore that reads the whole
|
package/dist/constants.d.ts
CHANGED
|
@@ -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.
|
|
112
|
+
export declare const VERSION = "0.3.85";
|
|
113
113
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
package/dist/node.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The Node adapters — the
|
|
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
|
|
5
|
-
* universal entry
|
|
6
|
-
*
|
|
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
|
|
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
|
*/
|
package/dist/node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA
|
|
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
|
|
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
|
|
5
|
-
* universal entry
|
|
6
|
-
*
|
|
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
|
|
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
|
|
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
package/src/constants.ts
CHANGED
package/src/node.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The Node adapters — the
|
|
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
|
|
5
|
-
* universal entry
|
|
6
|
-
*
|
|
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
|
|
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
|
*/
|