edfcore 0.6.285 → 0.6.287
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/annotations-query.d.ts.map +1 -1
- package/dist/annotations-query.js +12 -2
- package/dist/annotations-query.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/tal/ticks.d.ts.map +1 -1
- package/dist/tal/ticks.js +34 -1
- package/dist/tal/ticks.js.map +1 -1
- package/docs/CHANGELOG.md +31 -0
- package/package.json +1 -1
- package/src/annotations-query.ts +12 -2
- package/src/constants.ts +1 -1
- package/src/tal/ticks.ts +36 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotations-query.d.ts","sourceRoot":"","sources":["../src/annotations-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAmDrE;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,SAAS,aAAa,EAAE,EACrC,MAAM,EAAE,mBAAmB,GAC1B,SAAS,aAAa,EAAE,CA6E1B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,SAAS,aAAa,EAAE,EACrC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GACnD,SAAS,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"annotations-query.d.ts","sourceRoot":"","sources":["../src/annotations-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAmDrE;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,SAAS,aAAa,EAAE,EACrC,MAAM,EAAE,mBAAmB,GAC1B,SAAS,aAAa,EAAE,CA6E1B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,SAAS,aAAa,EAAE,EACrC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GACnD,SAAS,aAAa,EAAE,CAwD1B;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,SAAS,aAAa,EAAE,GACpC,aAAa,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CASlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,SAAS,aAAa,EAAE,EACrC,OAAO,EAAE,MAAM,GACd,SAAS,aAAa,EAAE,CA2B1B"}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* one puts events in the neighbouring window on exactly the files that bother to state their
|
|
19
19
|
* offset.
|
|
20
20
|
*/
|
|
21
|
-
import { assertMatcher, matchesText } from './header/lookup.js';
|
|
21
|
+
import { assertMatcher, isRegExpMatcher, matchesText } from './header/lookup.js';
|
|
22
22
|
import { secondsToTicks } from './tal/ticks.js';
|
|
23
23
|
import { describeValue } from './text/describe.js';
|
|
24
24
|
/**
|
|
@@ -166,9 +166,19 @@ export function filterAnnotationsByText(annotations, match) {
|
|
|
166
166
|
assertAnnotations(annotations, 'filterAnnotationsByText');
|
|
167
167
|
const test = typeof match === 'string'
|
|
168
168
|
? (text) => text === match
|
|
169
|
-
: match
|
|
169
|
+
: isRegExpMatcher(match)
|
|
170
170
|
? // Not `match.test` directly: a `g` or `y` flag makes `test` stateful across the array
|
|
171
171
|
// and silently returns about half the true matches. See `matchesText`.
|
|
172
|
+
//
|
|
173
|
+
// `isRegExpMatcher`, not `instanceof RegExp`, which was false for a pattern built in
|
|
174
|
+
// another realm — an iframe, a worker, an Electron contextBridge, jsdom, a Node `vm`
|
|
175
|
+
// context. 0.6.285 fixed the same dispatch in `matchSignals` and has the argument; this
|
|
176
|
+
// is the second of the two calls that share the rule, and the likelier of them to be
|
|
177
|
+
// running inside a worker, since narrowing a hypnogram to its stages is the work a viewer
|
|
178
|
+
// moves off the main thread. A cross-realm `/stage/i` was refused as "the matcher is the
|
|
179
|
+
// RegExp /stage/i, and this call takes a string matched verbatim, a RegExp, or a
|
|
180
|
+
// predicate on the text" — a sentence whose rule the argument satisfies, from a guard
|
|
181
|
+
// whose subject `describeValue` had already read off the same tag (0.6.286).
|
|
172
182
|
matchesText(match)
|
|
173
183
|
: assertMatcher(match, 'filterAnnotationsByText', 'a string matched verbatim, a RegExp, or a predicate on the text', 'pass the label as a string, or (text) => text.trim() === label for a file whose ' +
|
|
174
184
|
'vocabulary is padded');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotations-query.js","sourceRoot":"","sources":["../src/annotations-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"annotations-query.js","sourceRoot":"","sources":["../src/annotations-query.ts"],"names":[],"mappings":"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"}
|
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.287";
|
|
113
113
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
package/dist/tal/ticks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticks.d.ts","sourceRoot":"","sources":["../../src/tal/ticks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAwED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAOxD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAQ1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGpD;AAKD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrD;AA2DD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"ticks.d.ts","sourceRoot":"","sources":["../../src/tal/ticks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAwED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAOxD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAQ1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGpD;AAKD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrD;AA2DD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA2EpE"}
|
package/dist/tal/ticks.js
CHANGED
|
@@ -260,6 +260,39 @@ export function secondsToTicks(seconds, name) {
|
|
|
260
260
|
'variable, query parameter or config key yields NaN, and a division by zero yields ' +
|
|
261
261
|
'Infinity.'));
|
|
262
262
|
}
|
|
263
|
-
|
|
263
|
+
/*
|
|
264
|
+
* The PRODUCT, which the finiteness check above cannot see.
|
|
265
|
+
*
|
|
266
|
+
* A tick is 100 ns, so this multiplies by ten million — and above about 1.8e301 seconds the
|
|
267
|
+
* result is `Infinity` for an argument that was finite. `Math.round(Infinity)` is `Infinity`, and
|
|
268
|
+
* `BigInt(Infinity)` is V8's "The number Infinity cannot be converted to a BigInt because it is
|
|
269
|
+
* not an integer": no `Next:` clause, no mention of edfcore, naming an internal conversion and
|
|
270
|
+
* saying "is not an integer" about a value the caller never produced. It escaped on eleven public
|
|
271
|
+
* calls — `readWindow` on either bound, `readEnvelope`, `readEnvelopeAtResolution`,
|
|
272
|
+
* `streamRecords`, `resolveTimeWindow`, `trimToWindow`, `segmentAt`, `filterAnnotationsByTime`,
|
|
273
|
+
* `annotationsAt` and `gridSampleIndexAt`.
|
|
274
|
+
*
|
|
275
|
+
* `nan-seconds-reaches.test.ts` is the sweep this belongs to and states the premise: "The
|
|
276
|
+
* guarantee is that a `NaN` cannot get PAST it." A finite bound that overflows inside the
|
|
277
|
+
* conversion is the fourth value, and the one the guard above lets through.
|
|
278
|
+
*
|
|
279
|
+
* `Number.MAX_VALUE` is how it arrives, and the check above is what sends a caller to it. Asking
|
|
280
|
+
* for "as much as there is" is what a sentinel is for, and this package accepts one for a row
|
|
281
|
+
* limit — so `Infinity` is the first thing tried on a time bound, it is refused here with advice
|
|
282
|
+
* to go and audit the expression that produced it, and `Number.MAX_VALUE` is the second. That one
|
|
283
|
+
* broke the contract instead of refusing.
|
|
284
|
+
*
|
|
285
|
+
* No caller-specific advice: the docblock above records what that costs — the old wording was
|
|
286
|
+
* "right for five of the fifteen call sites and wrong for the rest" — so this names the mistake
|
|
287
|
+
* itself, which is the same for a window, an instant and a bucket width (0.6.287).
|
|
288
|
+
*/
|
|
289
|
+
const ticks = Math.round(seconds * TICKS_PER_SECOND_FLOAT);
|
|
290
|
+
if (!Number.isFinite(ticks)) {
|
|
291
|
+
throw new RangeError(`${name} is ${seconds} seconds, which is finite but has no tick count — a tick is 100 ns, ` +
|
|
292
|
+
'so the conversion overflows float64 above about 1.8e301 seconds. Next: pass the value ' +
|
|
293
|
+
'you mean rather than a sentinel for as much as possible — a bound past the end of the ' +
|
|
294
|
+
'recording is clamped to it, so none of them has to be large.');
|
|
295
|
+
}
|
|
296
|
+
return BigInt(ticks);
|
|
264
297
|
}
|
|
265
298
|
//# sourceMappingURL=ticks.js.map
|
package/dist/tal/ticks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticks.js","sourceRoot":"","sources":["../../src/tal/ticks.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ticks.js","sourceRoot":"","sources":["../../src/tal/ticks.ts"],"names":[],"mappings":"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"}
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,37 @@ 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.287
|
|
10
|
+
|
|
11
|
+
- **Fixed** a finite time bound escaping as V8's "The number Infinity cannot be converted to a BigInt
|
|
12
|
+
because it is not an integer" — no `Next:` clause, no mention of edfcore, naming an internal
|
|
13
|
+
conversion and saying "is not an integer" about a value the caller never produced.
|
|
14
|
+
- A tick is 100 ns, so `secondsToTicks` multiplies by ten million, and above about 1.8e301 seconds
|
|
15
|
+
that product is `Infinity` for an argument `Number.isFinite` had just accepted. The finiteness check
|
|
16
|
+
sits one line above the multiplication that creates one.
|
|
17
|
+
- It escaped on eleven public calls: `readWindow` on either bound, `readEnvelope`,
|
|
18
|
+
`readEnvelopeAtResolution`, `streamRecords`, `resolveTimeWindow`, `trimToWindow`, `segmentAt`,
|
|
19
|
+
`filterAnnotationsByTime`, `annotationsAt` and `gridSampleIndexAt`.
|
|
20
|
+
- `Number.MAX_VALUE` is how it arrives, and the existing check is what sends a caller to it: asking
|
|
21
|
+
for "as much as there is" is what a sentinel is for, `Infinity` is refused with advice to audit the
|
|
22
|
+
expression that produced it, and `Number.MAX_VALUE` is the next thing tried.
|
|
23
|
+
- No sentinel was ever needed — a duration past the end of the recording is clamped to it, which is
|
|
24
|
+
what the new advice says. The message names the mistake rather than a window, because fifteen call
|
|
25
|
+
sites share this resolver and the resolver's docblock records what caller-specific advice costs.
|
|
26
|
+
|
|
27
|
+
## 0.6.286
|
|
28
|
+
|
|
29
|
+
- **Fixed** the second of the two calls that dispatched on `match instanceof RegExp`.
|
|
30
|
+
`filterAnnotationsByText` refused a RegExp built in another realm the same way `matchSignals` did
|
|
31
|
+
before 0.6.285 — "the matcher is the RegExp /stage/i, and this call takes a string matched
|
|
32
|
+
verbatim, a RegExp, or a predicate on the text" — naming the kind it had just refused, because
|
|
33
|
+
`describeValue` reads the built-in tag the dispatch would not.
|
|
34
|
+
- This is the likelier of the two to be running across a realm boundary. `annotations-query.ts` is
|
|
35
|
+
Layer 7 and pure, so narrowing a hypnogram to its stages is work a viewer can move into a worker,
|
|
36
|
+
and the pattern is then built there.
|
|
37
|
+
- The verbatim-string and predicate forms were never affected: `typeof` is realm-agnostic. Both calls
|
|
38
|
+
now share `isRegExpMatcher`.
|
|
39
|
+
|
|
9
40
|
## 0.6.285
|
|
10
41
|
|
|
11
42
|
- **Fixed** `matchSignals` refusing a RegExp built in another realm — an iframe, a worker, an Electron
|
package/package.json
CHANGED
package/src/annotations-query.ts
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* offset.
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
import { assertMatcher, matchesText } from './header/lookup.js';
|
|
22
|
+
import { assertMatcher, isRegExpMatcher, matchesText } from './header/lookup.js';
|
|
23
23
|
import { secondsToTicks } from './tal/ticks.js';
|
|
24
24
|
import { describeValue } from './text/describe.js';
|
|
25
25
|
import type { EdfAnnotation, EdfAnnotationWindow } from './types.js';
|
|
@@ -187,9 +187,19 @@ export function filterAnnotationsByText(
|
|
|
187
187
|
const test =
|
|
188
188
|
typeof match === 'string'
|
|
189
189
|
? (text: string): boolean => text === match
|
|
190
|
-
: match
|
|
190
|
+
: isRegExpMatcher(match)
|
|
191
191
|
? // Not `match.test` directly: a `g` or `y` flag makes `test` stateful across the array
|
|
192
192
|
// and silently returns about half the true matches. See `matchesText`.
|
|
193
|
+
//
|
|
194
|
+
// `isRegExpMatcher`, not `instanceof RegExp`, which was false for a pattern built in
|
|
195
|
+
// another realm — an iframe, a worker, an Electron contextBridge, jsdom, a Node `vm`
|
|
196
|
+
// context. 0.6.285 fixed the same dispatch in `matchSignals` and has the argument; this
|
|
197
|
+
// is the second of the two calls that share the rule, and the likelier of them to be
|
|
198
|
+
// running inside a worker, since narrowing a hypnogram to its stages is the work a viewer
|
|
199
|
+
// moves off the main thread. A cross-realm `/stage/i` was refused as "the matcher is the
|
|
200
|
+
// RegExp /stage/i, and this call takes a string matched verbatim, a RegExp, or a
|
|
201
|
+
// predicate on the text" — a sentence whose rule the argument satisfies, from a guard
|
|
202
|
+
// whose subject `describeValue` had already read off the same tag (0.6.286).
|
|
193
203
|
matchesText(match)
|
|
194
204
|
: assertMatcher(
|
|
195
205
|
match,
|
package/src/constants.ts
CHANGED
package/src/tal/ticks.ts
CHANGED
|
@@ -298,5 +298,40 @@ export function secondsToTicks(seconds: number, name: string): bigint {
|
|
|
298
298
|
'Infinity.'),
|
|
299
299
|
);
|
|
300
300
|
}
|
|
301
|
-
|
|
301
|
+
/*
|
|
302
|
+
* The PRODUCT, which the finiteness check above cannot see.
|
|
303
|
+
*
|
|
304
|
+
* A tick is 100 ns, so this multiplies by ten million — and above about 1.8e301 seconds the
|
|
305
|
+
* result is `Infinity` for an argument that was finite. `Math.round(Infinity)` is `Infinity`, and
|
|
306
|
+
* `BigInt(Infinity)` is V8's "The number Infinity cannot be converted to a BigInt because it is
|
|
307
|
+
* not an integer": no `Next:` clause, no mention of edfcore, naming an internal conversion and
|
|
308
|
+
* saying "is not an integer" about a value the caller never produced. It escaped on eleven public
|
|
309
|
+
* calls — `readWindow` on either bound, `readEnvelope`, `readEnvelopeAtResolution`,
|
|
310
|
+
* `streamRecords`, `resolveTimeWindow`, `trimToWindow`, `segmentAt`, `filterAnnotationsByTime`,
|
|
311
|
+
* `annotationsAt` and `gridSampleIndexAt`.
|
|
312
|
+
*
|
|
313
|
+
* `nan-seconds-reaches.test.ts` is the sweep this belongs to and states the premise: "The
|
|
314
|
+
* guarantee is that a `NaN` cannot get PAST it." A finite bound that overflows inside the
|
|
315
|
+
* conversion is the fourth value, and the one the guard above lets through.
|
|
316
|
+
*
|
|
317
|
+
* `Number.MAX_VALUE` is how it arrives, and the check above is what sends a caller to it. Asking
|
|
318
|
+
* for "as much as there is" is what a sentinel is for, and this package accepts one for a row
|
|
319
|
+
* limit — so `Infinity` is the first thing tried on a time bound, it is refused here with advice
|
|
320
|
+
* to go and audit the expression that produced it, and `Number.MAX_VALUE` is the second. That one
|
|
321
|
+
* broke the contract instead of refusing.
|
|
322
|
+
*
|
|
323
|
+
* No caller-specific advice: the docblock above records what that costs — the old wording was
|
|
324
|
+
* "right for five of the fifteen call sites and wrong for the rest" — so this names the mistake
|
|
325
|
+
* itself, which is the same for a window, an instant and a bucket width (0.6.287).
|
|
326
|
+
*/
|
|
327
|
+
const ticks = Math.round(seconds * TICKS_PER_SECOND_FLOAT);
|
|
328
|
+
if (!Number.isFinite(ticks)) {
|
|
329
|
+
throw new RangeError(
|
|
330
|
+
`${name} is ${seconds} seconds, which is finite but has no tick count — a tick is 100 ns, ` +
|
|
331
|
+
'so the conversion overflows float64 above about 1.8e301 seconds. Next: pass the value ' +
|
|
332
|
+
'you mean rather than a sentinel for as much as possible — a bound past the end of the ' +
|
|
333
|
+
'recording is clamped to it, so none of them has to be large.',
|
|
334
|
+
);
|
|
335
|
+
}
|
|
336
|
+
return BigInt(ticks);
|
|
302
337
|
}
|