edfcore 0.6.58 → 0.6.59
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/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/time/timeline.d.ts +9 -3
- package/dist/time/timeline.d.ts.map +1 -1
- package/dist/time/timeline.js +9 -3
- package/dist/time/timeline.js.map +1 -1
- package/docs/CHANGELOG.md +14 -0
- package/package.json +1 -1
- package/src/constants.ts +1 -1
- package/src/time/timeline.ts +9 -3
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.6.
|
|
112
|
+
export declare const VERSION = "0.6.59";
|
|
113
113
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
package/dist/time/timeline.d.ts
CHANGED
|
@@ -2,9 +2,15 @@
|
|
|
2
2
|
* The recording's time axis, built from probed record onsets.
|
|
3
3
|
*
|
|
4
4
|
* Layer 4. Pure and synchronous: it is handed onsets that someone else read, and it decides what
|
|
5
|
-
* they mean. Sole owner of what makes a timeline valid
|
|
6
|
-
* `recordOnsetTicks` and deliberately passes no judgement on it,
|
|
7
|
-
*
|
|
5
|
+
* they mean. Sole owner of what makes a timeline valid ON THE READING PATH —
|
|
6
|
+
* `tal/annotations.ts` produces `recordOnsetTicks` and deliberately passes no judgement on it,
|
|
7
|
+
* so every monotonicity and spacing verdict a read reaches is made here.
|
|
8
|
+
*
|
|
9
|
+
* Not "and nowhere else", which this said until 0.6.59. `validateRecording` checks the spacing
|
|
10
|
+
* rule again and reports `RECORD_ONSET_SPACING_VIOLATION` of its own, from the segments a
|
|
11
|
+
* COMPLETE index gives it — a stronger check than the one below, which sees a probed pair and
|
|
12
|
+
* can only report net drift. A reader of this file concluded the conformance sweep did not
|
|
13
|
+
* look.
|
|
8
14
|
*
|
|
9
15
|
* TIME AXIS, fixed here for the whole library: `t = 0` is the START OF RECORD 0, not the header
|
|
10
16
|
* start time. Record 0's timekeeping onset is `startOffsetTicks` — in [0, 1) s — and it is the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../../src/time/timeline.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../../src/time/timeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIvF,2FAA2F;AAC3F,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4FAA4F;IAC5F,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CACtD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAkB9F;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,EAC7B,gBAAgB,GAAE,MAAU,GAC3B,IAAI,CAUN;AAiID;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW,CAkEjG"}
|
package/dist/time/timeline.js
CHANGED
|
@@ -2,9 +2,15 @@
|
|
|
2
2
|
* The recording's time axis, built from probed record onsets.
|
|
3
3
|
*
|
|
4
4
|
* Layer 4. Pure and synchronous: it is handed onsets that someone else read, and it decides what
|
|
5
|
-
* they mean. Sole owner of what makes a timeline valid
|
|
6
|
-
* `recordOnsetTicks` and deliberately passes no judgement on it,
|
|
7
|
-
*
|
|
5
|
+
* they mean. Sole owner of what makes a timeline valid ON THE READING PATH —
|
|
6
|
+
* `tal/annotations.ts` produces `recordOnsetTicks` and deliberately passes no judgement on it,
|
|
7
|
+
* so every monotonicity and spacing verdict a read reaches is made here.
|
|
8
|
+
*
|
|
9
|
+
* Not "and nowhere else", which this said until 0.6.59. `validateRecording` checks the spacing
|
|
10
|
+
* rule again and reports `RECORD_ONSET_SPACING_VIOLATION` of its own, from the segments a
|
|
11
|
+
* COMPLETE index gives it — a stronger check than the one below, which sees a probed pair and
|
|
12
|
+
* can only report net drift. A reader of this file concluded the conformance sweep did not
|
|
13
|
+
* look.
|
|
8
14
|
*
|
|
9
15
|
* TIME AXIS, fixed here for the whole library: `t = 0` is the START OF RECORD 0, not the header
|
|
10
16
|
* start time. Record 0's timekeeping onset is `startOffsetTicks` — in [0, 1) s — and it is the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.js","sourceRoot":"","sources":["../../src/time/timeline.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"timeline.js","sourceRoot":"","sources":["../../src/time/timeline.ts"],"names":[],"mappings":"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"}
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,20 @@ 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.6.59
|
|
10
|
+
|
|
11
|
+
- **Fixed** `time/timeline.ts` claiming that "monotonicity and record-onset spacing are enforced
|
|
12
|
+
here and nowhere else". `validateRecording` enforces the spacing rule too, and its check is the
|
|
13
|
+
stronger one: it walks the gaps of a COMPLETE index and reports
|
|
14
|
+
`RECORD_ONSET_SPACING_VIOLATION` for each negative one, naming the two segments that overlap.
|
|
15
|
+
- The check in `timeline.ts` sees the two records `openEdf` probes, so it can only report net
|
|
16
|
+
drift — and a file whose gap and overlap cancel leaves it nothing to report. A reader who took
|
|
17
|
+
"nowhere else" at its word believed the conformance sweep did not look at spacing, and that the
|
|
18
|
+
probed verdict was the only one available. Both are the opposite of true.
|
|
19
|
+
- The docblock now scopes itself to the reading path, which is what it is sole owner of, and
|
|
20
|
+
names the other enforcer. The test builds the cancelling file and shows the two answers
|
|
21
|
+
differing on it.
|
|
22
|
+
|
|
9
23
|
## 0.6.58
|
|
10
24
|
|
|
11
25
|
- **Fixed** `io/source.ts` describing itself as "the only file in `io/` that imports an error
|
package/package.json
CHANGED
package/src/constants.ts
CHANGED
package/src/time/timeline.ts
CHANGED
|
@@ -2,9 +2,15 @@
|
|
|
2
2
|
* The recording's time axis, built from probed record onsets.
|
|
3
3
|
*
|
|
4
4
|
* Layer 4. Pure and synchronous: it is handed onsets that someone else read, and it decides what
|
|
5
|
-
* they mean. Sole owner of what makes a timeline valid
|
|
6
|
-
* `recordOnsetTicks` and deliberately passes no judgement on it,
|
|
7
|
-
*
|
|
5
|
+
* they mean. Sole owner of what makes a timeline valid ON THE READING PATH —
|
|
6
|
+
* `tal/annotations.ts` produces `recordOnsetTicks` and deliberately passes no judgement on it,
|
|
7
|
+
* so every monotonicity and spacing verdict a read reaches is made here.
|
|
8
|
+
*
|
|
9
|
+
* Not "and nowhere else", which this said until 0.6.59. `validateRecording` checks the spacing
|
|
10
|
+
* rule again and reports `RECORD_ONSET_SPACING_VIOLATION` of its own, from the segments a
|
|
11
|
+
* COMPLETE index gives it — a stronger check than the one below, which sees a probed pair and
|
|
12
|
+
* can only report net drift. A reader of this file concluded the conformance sweep did not
|
|
13
|
+
* look.
|
|
8
14
|
*
|
|
9
15
|
* TIME AXIS, fixed here for the whole library: `t = 0` is the START OF RECORD 0, not the header
|
|
10
16
|
* start time. Record 0's timekeeping onset is `startOffsetTicks` — in [0, 1) s — and it is the
|