edfcore 0.6.170 → 0.6.171
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/sample-grid.d.ts.map +1 -1
- package/dist/sample-grid.js +22 -6
- package/dist/sample-grid.js.map +1 -1
- package/docs/CHANGELOG.md +12 -0
- package/package.json +1 -1
- package/src/constants.ts +1 -1
- package/src/sample-grid.ts +24 -8
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.171";
|
|
113
113
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sample-grid.d.ts","sourceRoot":"","sources":["../src/sample-grid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"sample-grid.d.ts","sourceRoot":"","sources":["../src/sample-grid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA+E/D;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,MAAM,GAC1B,iBAAiB,CAoBnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,MAAM,GAC1B,MAAM,CAUR;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,MAAM,GAC1B,MAAM,CASR"}
|
package/dist/sample-grid.js
CHANGED
|
@@ -87,6 +87,26 @@ function assertGrid(signal, recordDurationTicks, call) {
|
|
|
87
87
|
'Next: index by record with readRecords().');
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* The INDEX, named by the call the reader actually wrote.
|
|
92
|
+
*
|
|
93
|
+
* `assertGrid` above takes a `call` for exactly this reason, and `sampleStartSecondsOf` grew its own
|
|
94
|
+
* copy of a guard in 0.6.101 on the same argument: "a reader who wrote this call should not be told
|
|
95
|
+
* about `sampleStartTicksOf`". This check lived inside `gridSampleStartTicks` alone, so
|
|
96
|
+
* `gridSampleStartSeconds(signal, 1.5, d)` — the display form, which delegates one line down — was
|
|
97
|
+
* refused in the name of a function it never called.
|
|
98
|
+
*
|
|
99
|
+
* The two arguments of one call were then described by two different functions: `assertGrid` named
|
|
100
|
+
* `gridSampleStartSeconds` for a bad signal and this named `gridSampleStartTicks` for a bad index,
|
|
101
|
+
* on the same line of the same file.
|
|
102
|
+
*/
|
|
103
|
+
function assertSampleIndex(sampleIndex, call) {
|
|
104
|
+
if (Number.isSafeInteger(sampleIndex))
|
|
105
|
+
return;
|
|
106
|
+
throw new RangeError(`${call}(): sampleIndex must be a whole number, received ${describeValue(sampleIndex)}. ` +
|
|
107
|
+
"Next: pass a whole index; this family measures the signal's own grid, so a fractional " +
|
|
108
|
+
'one has no position on it.');
|
|
109
|
+
}
|
|
90
110
|
/**
|
|
91
111
|
* The sample covering `seconds` elapsed from the start of the recording.
|
|
92
112
|
*
|
|
@@ -128,12 +148,7 @@ export function gridSampleIndexAt(signal, seconds, recordDurationTicks) {
|
|
|
128
148
|
*/
|
|
129
149
|
export function gridSampleStartTicks(signal, sampleIndex, recordDurationTicks) {
|
|
130
150
|
assertGrid(signal, recordDurationTicks, 'gridSampleStartTicks');
|
|
131
|
-
|
|
132
|
-
throw new RangeError(`gridSampleStartTicks(): sampleIndex must be a whole number, received ` +
|
|
133
|
-
`${describeValue(sampleIndex)}. ` +
|
|
134
|
-
"Next: pass a whole index; this family measures the signal's own grid, so a fractional " +
|
|
135
|
-
'one has no position on it.');
|
|
136
|
-
}
|
|
151
|
+
assertSampleIndex(sampleIndex, 'gridSampleStartTicks');
|
|
137
152
|
const perRecord = BigInt(signal.samplesPerRecord);
|
|
138
153
|
const numerator = BigInt(sampleIndex) * recordDurationTicks;
|
|
139
154
|
const quotient = numerator / perRecord;
|
|
@@ -148,6 +163,7 @@ export function gridSampleStartSeconds(signal, sampleIndex, recordDurationTicks)
|
|
|
148
163
|
// Its own, before the delegation, for the reason `sampleStartSecondsOf` grew one in 0.6.101: a
|
|
149
164
|
// reader who wrote this call should not be told about `gridSampleStartTicks`.
|
|
150
165
|
assertGrid(signal, recordDurationTicks, 'gridSampleStartSeconds');
|
|
166
|
+
assertSampleIndex(sampleIndex, 'gridSampleStartSeconds');
|
|
151
167
|
const ticks = gridSampleStartTicks(signal, sampleIndex, recordDurationTicks);
|
|
152
168
|
const whole = ticks / TICKS_PER_SECOND;
|
|
153
169
|
const remainder = ticks % TICKS_PER_SECOND;
|
package/dist/sample-grid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sample-grid.js","sourceRoot":"","sources":["../src/sample-grid.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sample-grid.js","sourceRoot":"","sources":["../src/sample-grid.ts"],"names":[],"mappings":"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"}
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,18 @@ 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.171
|
|
10
|
+
|
|
11
|
+
- **Fixed** `gridSampleStartSeconds` refusing a bad index in the name of a function the caller never
|
|
12
|
+
wrote. The index guard hard-coded `gridSampleStartTicks`, the one-line delegate underneath it, so
|
|
13
|
+
`gridSampleStartSeconds(signal, 1.5, d)` was answered by `gridSampleStartTicks():`.
|
|
14
|
+
- The two arguments of one call were described by two different functions: the signal by
|
|
15
|
+
`assertGrid`, which takes the call name for exactly this reason, and the index by the other name,
|
|
16
|
+
on the same line of the same file.
|
|
17
|
+
- It matters more in this module than most. Its own docblock spends four paragraphs on the `grid`
|
|
18
|
+
prefix being load-bearing, because the neighbouring family measures a different quantity — so a
|
|
19
|
+
refusal that hands over the wrong name sends a reader to a call they did not make.
|
|
20
|
+
|
|
9
21
|
## 0.6.170
|
|
10
22
|
|
|
11
23
|
- **Fixed** an array taken as a time window by `filterAnnotationsByTime`, the one function left in
|
package/package.json
CHANGED
package/src/constants.ts
CHANGED
package/src/sample-grid.ts
CHANGED
|
@@ -101,6 +101,28 @@ function assertGrid(signal: EdfSignal, recordDurationTicks: bigint, call: string
|
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
+
/**
|
|
105
|
+
* The INDEX, named by the call the reader actually wrote.
|
|
106
|
+
*
|
|
107
|
+
* `assertGrid` above takes a `call` for exactly this reason, and `sampleStartSecondsOf` grew its own
|
|
108
|
+
* copy of a guard in 0.6.101 on the same argument: "a reader who wrote this call should not be told
|
|
109
|
+
* about `sampleStartTicksOf`". This check lived inside `gridSampleStartTicks` alone, so
|
|
110
|
+
* `gridSampleStartSeconds(signal, 1.5, d)` — the display form, which delegates one line down — was
|
|
111
|
+
* refused in the name of a function it never called.
|
|
112
|
+
*
|
|
113
|
+
* The two arguments of one call were then described by two different functions: `assertGrid` named
|
|
114
|
+
* `gridSampleStartSeconds` for a bad signal and this named `gridSampleStartTicks` for a bad index,
|
|
115
|
+
* on the same line of the same file.
|
|
116
|
+
*/
|
|
117
|
+
function assertSampleIndex(sampleIndex: number, call: string): void {
|
|
118
|
+
if (Number.isSafeInteger(sampleIndex)) return;
|
|
119
|
+
throw new RangeError(
|
|
120
|
+
`${call}(): sampleIndex must be a whole number, received ${describeValue(sampleIndex)}. ` +
|
|
121
|
+
"Next: pass a whole index; this family measures the signal's own grid, so a fractional " +
|
|
122
|
+
'one has no position on it.',
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
|
|
104
126
|
/**
|
|
105
127
|
* The sample covering `seconds` elapsed from the start of the recording.
|
|
106
128
|
*
|
|
@@ -153,14 +175,7 @@ export function gridSampleStartTicks(
|
|
|
153
175
|
recordDurationTicks: bigint,
|
|
154
176
|
): bigint {
|
|
155
177
|
assertGrid(signal, recordDurationTicks, 'gridSampleStartTicks');
|
|
156
|
-
|
|
157
|
-
throw new RangeError(
|
|
158
|
-
`gridSampleStartTicks(): sampleIndex must be a whole number, received ` +
|
|
159
|
-
`${describeValue(sampleIndex)}. ` +
|
|
160
|
-
"Next: pass a whole index; this family measures the signal's own grid, so a fractional " +
|
|
161
|
-
'one has no position on it.',
|
|
162
|
-
);
|
|
163
|
-
}
|
|
178
|
+
assertSampleIndex(sampleIndex, 'gridSampleStartTicks');
|
|
164
179
|
const perRecord = BigInt(signal.samplesPerRecord);
|
|
165
180
|
const numerator = BigInt(sampleIndex) * recordDurationTicks;
|
|
166
181
|
const quotient = numerator / perRecord;
|
|
@@ -179,6 +194,7 @@ export function gridSampleStartSeconds(
|
|
|
179
194
|
// Its own, before the delegation, for the reason `sampleStartSecondsOf` grew one in 0.6.101: a
|
|
180
195
|
// reader who wrote this call should not be told about `gridSampleStartTicks`.
|
|
181
196
|
assertGrid(signal, recordDurationTicks, 'gridSampleStartSeconds');
|
|
197
|
+
assertSampleIndex(sampleIndex, 'gridSampleStartSeconds');
|
|
182
198
|
const ticks = gridSampleStartTicks(signal, sampleIndex, recordDurationTicks);
|
|
183
199
|
const whole = ticks / TICKS_PER_SECOND;
|
|
184
200
|
const remainder = ticks % TICKS_PER_SECOND;
|