edfcore 0.4.230 → 0.4.238
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/README.md +5 -4
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/docs/CHANGELOG.md +108 -0
- package/package.json +2 -1
- package/src/constants.ts +1 -1
package/README.md
CHANGED
|
@@ -397,7 +397,7 @@ exactly the invention this library refuses. JSR publication.
|
|
|
397
397
|
|
|
398
398
|
The full documentation site lives in
|
|
399
399
|
[`website/`](https://github.com/tayal-sarthak/edfcore/tree/main/website), an Astro build with
|
|
400
|
-
|
|
400
|
+
22 pages.
|
|
401
401
|
It includes a **local inspector** that opens an EDF file and shows its header, channels, events
|
|
402
402
|
and waveforms in your browser, with nothing uploaded.
|
|
403
403
|
|
|
@@ -406,9 +406,10 @@ npm install --prefix website
|
|
|
406
406
|
npm run dev --prefix website
|
|
407
407
|
```
|
|
408
408
|
|
|
409
|
-
Start with **Concepts**, which is the mental model the rest of the API follows from. Then the
|
|
410
|
-
|
|
411
|
-
pages. Those include a standalone primer on the EDF format itself.
|
|
409
|
+
Start with **Concepts**, which is the mental model the rest of the API follows from. Then the
|
|
410
|
+
guides — one per task, from reading signals to validation — the API reference, and the background
|
|
411
|
+
pages. Those include a standalone primer on the EDF format itself. There is no inventory of them
|
|
412
|
+
here on purpose — the sidebar is generated from the pages themselves, so it is the list.
|
|
412
413
|
|
|
413
414
|
### Deploying the site
|
|
414
415
|
|
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.4.
|
|
112
|
+
export declare const VERSION = "0.4.238";
|
|
113
113
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
package/docs/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,114 @@ 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.238
|
|
10
|
+
|
|
11
|
+
- **Fixed** the README undercounting the documentation site. It said "an Astro build with twenty
|
|
12
|
+
pages" and the collection holds twenty-two — the same shape of defect as the API surface table
|
|
13
|
+
two sections above it, which has been checked since 0.1.x. The number is now written as digits
|
|
14
|
+
and read against the collection, because a number a test has to read should be written the way
|
|
15
|
+
a test can read it.
|
|
16
|
+
- **Removed** the hand-written list of guides in the sentence after it, which named eight of the
|
|
17
|
+
nine. The sidebar is generated from the pages, so it is the list; a paragraph that restates it
|
|
18
|
+
is one more inventory to keep in step, and the site has now lost three of those in nine
|
|
19
|
+
releases.
|
|
20
|
+
|
|
21
|
+
## 0.4.237
|
|
22
|
+
|
|
23
|
+
- **Fixed** `npm run check` failing on any machine without the website's dependencies installed,
|
|
24
|
+
which is every CI runner. 0.4.231 added a check comparing the docs reader's glob pattern against
|
|
25
|
+
the collection loader's, and read `website/src/content.config.ts` through `import.meta.glob`
|
|
26
|
+
with `?raw`. A raw glob still hands the path to vite's transform, which resolves that file's
|
|
27
|
+
nearest tsconfig — `website/tsconfig.json`, which extends `astro/tsconfigs/strict` out of
|
|
28
|
+
`website/node_modules`. The CI `check` job installs the root workspace only, so the run died
|
|
29
|
+
with `[TSCONFIG_ERROR] Failed to load tsconfig 'astro/tsconfigs/strict'` while the same command
|
|
30
|
+
passed locally, where the site's dependencies happen to be present. Both files are read with
|
|
31
|
+
`readFileSync` now: bytes, no transform, no tsconfig.
|
|
32
|
+
|
|
33
|
+
**0.4.231 through 0.4.236 were never released.** Each was tagged and each publish run failed at
|
|
34
|
+
the check above, so six numbers are holes on npm the way 0.2.29, 0.2.36, 0.2.59 and 0.4.176 are.
|
|
35
|
+
Nothing is lost: every change they carried is in this release. The 0.4.200 revert cannot reach
|
|
36
|
+
this case — the checks passed on the machine cutting the tag, and it was the *runner's*
|
|
37
|
+
environment that differed, which is the gap 0.4.233 had just moved `publint` into CI to narrow
|
|
38
|
+
from the other side.
|
|
39
|
+
|
|
40
|
+
## 0.4.236
|
|
41
|
+
|
|
42
|
+
- **Added** a check that every internal link on the site points at something that exists. The
|
|
43
|
+
documentation pages carry over a hundred `/docs/...` and `#anchor` links between them and
|
|
44
|
+
nothing checked one: `astro check` validates types and content collections, not hrefs, and a
|
|
45
|
+
static build turns a link to a renamed page into a 404 for the reader rather than an error for
|
|
46
|
+
the author. The 404 page exists because that happens — "the address may have moved when the docs
|
|
47
|
+
were reorganised" — which is a good page to have and a poor substitute for not shipping the
|
|
48
|
+
link. Anchors are the half that rots quietly, since one breaks when someone rewords a heading
|
|
49
|
+
three sections away and the link still looks right; 0.4.234 nearly shipped exactly that, a table
|
|
50
|
+
cell pointing at `#patient-identification` on a page whose redaction note has no heading. The
|
|
51
|
+
nine links hard-coded in `.astro` routes are swept too — the 404's three ways out and the
|
|
52
|
+
landing page's four are the ones a reader hits first. Nothing was broken today.
|
|
53
|
+
|
|
54
|
+
## 0.4.235
|
|
55
|
+
|
|
56
|
+
- **Added** documentation for the three selection types, taking the recorded undocumented list
|
|
57
|
+
from eleven to eight. `StreamSelection`, `EnvelopeSelection` and `TriggerSelection` are what
|
|
58
|
+
`streamRecords`, `readEnvelope` and `readTriggers` take, and every page showed an object literal
|
|
59
|
+
without ever naming the type — so a wrapper that accepts one had nothing to import.
|
|
60
|
+
`api-types.md` lists all three in the selections table and `api-helpers.md` names each in the
|
|
61
|
+
section that teaches its call, including the fact that the first two are a `WindowSelection`
|
|
62
|
+
plus one field.
|
|
63
|
+
- **Fixed** the sentence under that table, which said `signalIndices` is required "on both
|
|
64
|
+
selections". There are five now, and `TriggerSelection` is the one with no channel field at all
|
|
65
|
+
— `readTriggers` finds the BioSemi Status signal itself, because a 24-bit EEG sample decoded as
|
|
66
|
+
a trigger word yields plausible events out of ordinary data.
|
|
67
|
+
|
|
68
|
+
## 0.4.234
|
|
69
|
+
|
|
70
|
+
- **Added** documentation for the three formatter options types, and took them off the recorded
|
|
71
|
+
list of undocumented ones. `FormatHeaderOptions`, `FormatAnnotationsOptions` and
|
|
72
|
+
`FormatReportOptions` are exported and every field of each was described somewhere in prose, but
|
|
73
|
+
none of the three was named on a page — so writing a wrapper that accepts one, or building an
|
|
74
|
+
options object ahead of the call, meant reading the `.d.ts`. `api-helpers.md` now gives each a
|
|
75
|
+
field table with its default, and says why `includePatientId` defaults off while
|
|
76
|
+
`diagnosticsHint` defaults on: the cost of forgetting the first is a person's name in an issue
|
|
77
|
+
tracker, and the cost of forgetting the second is one redundant line. `UNDOCUMENTED_TYPES` is
|
|
78
|
+
down from fourteen to eleven, which is the direction 0.4.220 built it to move in.
|
|
79
|
+
|
|
80
|
+
## 0.4.233
|
|
81
|
+
|
|
82
|
+
- **Changed** the packaging checks to run on every push instead of only at publish time.
|
|
83
|
+
`publint --strict` and `@arethetypeswrong/cli` are the two things `npm run check` cannot do —
|
|
84
|
+
they read the manifest against the files npm would actually pack, and resolve each subpath the
|
|
85
|
+
way a consumer's TypeScript would — and they lived in `publish.yml`, which runs after the tag is
|
|
86
|
+
pushed. That is the one window `scripts/release.mjs` cannot undo, so a packaging mistake found
|
|
87
|
+
there could only be fixed by cutting another version. CI now has a `package` job, and both
|
|
88
|
+
workflows call the same `npm run verify:package` so the two cannot drift. It stays out of
|
|
89
|
+
`npm run check`: that one downloads nothing, and `git clone && npm test` being green offline is
|
|
90
|
+
a property worth keeping.
|
|
91
|
+
|
|
92
|
+
## 0.4.232
|
|
93
|
+
|
|
94
|
+
- **Fixed** the site's version sweep reading only `.astro` files. `website/src/pages/` also holds
|
|
95
|
+
seven `.ts` routes, and they emit prose exactly the way a component does: `llms.txt` is the map
|
|
96
|
+
an agent is handed, `[...slug].md.ts` is the markdown twin of every documentation page, and
|
|
97
|
+
`robots.txt` and `api.json` are served verbatim. A stale version in one of those reaches a
|
|
98
|
+
reader the same way the footer's "MIT licensed. Version 0.1.0." did for three minor series.
|
|
99
|
+
Widening it needed one more thing first: comments are now stripped before the scan, because
|
|
100
|
+
`api.json.ts` quotes that footer defect as the reason it counts the surface rather than stating
|
|
101
|
+
it, and a whole-file match finds the quotation rather than a claim. What a file emits is the
|
|
102
|
+
claim; what it says about the past is history. HTML comments are left in — those ship.
|
|
103
|
+
|
|
104
|
+
## 0.4.231
|
|
105
|
+
|
|
106
|
+
- **Fixed** four documentation sweeps reading a narrower set of pages than the site publishes.
|
|
107
|
+
`docs-coverage.test.ts`, `diagnostic-docs.test.ts` and `readme-status.test.ts` — the last of
|
|
108
|
+
them twice — each wrote its own reader, three globbing `content/docs/*.md` and one calling
|
|
109
|
+
`readdirSync(...).filter(name => name.endsWith('.md'))`. The collection loads
|
|
110
|
+
`**/*.{md,mdx}` and `astro.config.mjs` registers the MDX integration, so a page in a
|
|
111
|
+
subdirectory or written as `.mdx` was published and unswept. It fails in the unhelpful
|
|
112
|
+
direction too: a name documented only on an unseen page reports as undocumented, and a type on
|
|
113
|
+
the recorded `UNDOCUMENTED_TYPES` list stays there after the page documenting it is written.
|
|
114
|
+
All four now read `tests/support/docs-pages.ts`, and a new check compares that reader's glob
|
|
115
|
+
call against the loader's pattern, so narrowing either side fails rather than going quiet.
|
|
116
|
+
|
|
9
117
|
## 0.4.230
|
|
10
118
|
|
|
11
119
|
- **Added** a check on the three packaging promises in the README's compatibility list — zero
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "edfcore",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.238",
|
|
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",
|
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
"lint": "biome check --error-on-warnings .",
|
|
71
71
|
"format": "biome check --write --linter-enabled=false .",
|
|
72
72
|
"check": "npm run lint && npm run typecheck && npm run build && npm run test",
|
|
73
|
+
"verify:package": "npx --yes publint@latest --strict && npx --yes @arethetypeswrong/cli@latest --pack . --profile esm-only",
|
|
73
74
|
"corpus:fetch": "node scripts/fetch-corpus.mjs",
|
|
74
75
|
"release": "node scripts/release.mjs",
|
|
75
76
|
"prepublishOnly": "npm run check && npm run build"
|
package/src/constants.ts
CHANGED