edfcore 0.6.283 → 0.6.285

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.
@@ -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.283";
112
+ export declare const VERSION = "0.6.285";
113
113
  //# sourceMappingURL=constants.d.ts.map
package/dist/constants.js CHANGED
@@ -79,5 +79,5 @@ export const SIGNAL_FIELD_BLOCK_OFFSETS = {
79
79
  reserved: 224,
80
80
  };
81
81
  /** Published package version. Kept in sync with package.json by a test. */
82
- export const VERSION = '0.6.283';
82
+ export const VERSION = '0.6.285';
83
83
  //# sourceMappingURL=constants.js.map
@@ -61,6 +61,21 @@ export declare function getSignal(header: EdfHeader, selector: number | string):
61
61
  * 0.6.103).
62
62
  */
63
63
  export declare function assertMatcher<T>(match: T, call: string, accepts: string, instead: string): T;
64
+ /**
65
+ * Whether a matcher is a RegExp, by the built-in tag.
66
+ *
67
+ * `instanceof RegExp` is false for a pattern built in another realm — an iframe, a worker, an
68
+ * Electron contextBridge, jsdom, a Node `vm` context — which is the rule `io/bytes.ts`,
69
+ * `bytes/latin1.ts`, `io/source.ts`, `decode/digital.ts` and `errors.ts` each state for their own
70
+ * guard, and `text/describe.ts` applied to its buffer arm in 0.6.284. A tag comes from
71
+ * `Symbol.toStringTag` on the prototype and every realm agrees on it.
72
+ *
73
+ * One home for the two calls that dispatch on it, `matchSignals` here and `filterAnnotationsByText`
74
+ * next door, for the reason 0.6.121 gives for `isByteArray`: two copies of a rule have to be kept
75
+ * in agreement and one does not. A type guard rather than a bare comparison, so the `else` branch
76
+ * still narrows to the predicate (0.6.285).
77
+ */
78
+ export declare function isRegExpMatcher(match: unknown): match is RegExp;
64
79
  export declare function matchesText(match: RegExp): (text: string) => boolean;
65
80
  /**
66
81
  * Every data signal whose label matches a pattern.
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../src/header/lookup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAaxD;AAgHD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,SAAS,EAAE,CAMlF;AAyED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAoDjF;AAED;;;;;;;;;;;;;;GAcG;AACH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,CAM5F;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAQpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,GAC3C,SAAS,SAAS,EAAE,CA8CtB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAoDjE"}
1
+ {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../src/header/lookup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAaxD;AAgHD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,SAAS,EAAE,CAMlF;AAyED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAoDjF;AAED;;;;;;;;;;;;;;GAcG;AACH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,CAM5F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE/D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAQpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,GAC3C,SAAS,SAAS,EAAE,CAiEtB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAoDjE"}
@@ -296,6 +296,23 @@ export function assertMatcher(match, call, accepts, instead) {
296
296
  throw new RangeError(`${call}(): the matcher is ${describeValue(match)}, and this call takes ${accepts}. ` +
297
297
  `Next: ${instead}.`);
298
298
  }
299
+ /**
300
+ * Whether a matcher is a RegExp, by the built-in tag.
301
+ *
302
+ * `instanceof RegExp` is false for a pattern built in another realm — an iframe, a worker, an
303
+ * Electron contextBridge, jsdom, a Node `vm` context — which is the rule `io/bytes.ts`,
304
+ * `bytes/latin1.ts`, `io/source.ts`, `decode/digital.ts` and `errors.ts` each state for their own
305
+ * guard, and `text/describe.ts` applied to its buffer arm in 0.6.284. A tag comes from
306
+ * `Symbol.toStringTag` on the prototype and every realm agrees on it.
307
+ *
308
+ * One home for the two calls that dispatch on it, `matchSignals` here and `filterAnnotationsByText`
309
+ * next door, for the reason 0.6.121 gives for `isByteArray`: two copies of a rule have to be kept
310
+ * in agreement and one does not. A type guard rather than a bare comparison, so the `else` branch
311
+ * still narrows to the predicate (0.6.285).
312
+ */
313
+ export function isRegExpMatcher(match) {
314
+ return Object.prototype.toString.call(match) === '[object RegExp]';
315
+ }
299
316
  export function matchesText(match) {
300
317
  const pattern = new RegExp(match.source, match.flags);
301
318
  return (text) => {
@@ -320,7 +337,27 @@ export function matchesText(match) {
320
337
  export function matchSignals(header, match) {
321
338
  assertHeaderSignals(header, 'matchSignals');
322
339
  assertSelector(match, 'matchSignals', 'a RegExp, or a function taking a label');
323
- const test = match instanceof RegExp
340
+ /*
341
+ * The TAG, not `instanceof`, which refused a RegExp by naming it a RegExp.
342
+ *
343
+ * `instanceof RegExp` is false for a pattern built in another realm — an iframe, a worker, an
344
+ * Electron contextBridge, jsdom, a Node `vm` context — so a cross-realm `/EEG/i` fell to
345
+ * `assertMatcher`, which wants a function, and was refused with "the matcher is the RegExp /EEG/i,
346
+ * and this call takes a RegExp or a predicate on the label. Next: pass a RegExp for a pattern".
347
+ * The subject is right because `describeValue` reads the tag (0.6.269); the rule and the advice
348
+ * then both describe what the caller had already done.
349
+ *
350
+ * Nothing below needs changing for it to work: `matchesText` recompiles from `.source` and
351
+ * `.flags`, which every realm spells the same, so the pattern this dispatch was keeping out was
352
+ * one the matcher could always have used.
353
+ *
354
+ * The rule is the package's own, stated in `io/bytes.ts`, `bytes/latin1.ts`, `io/source.ts`,
355
+ * `decode/digital.ts`, `errors.ts` and `text/describe.ts`, and extended to the describer's buffer
356
+ * arm in 0.6.284. A montage selector is the likeliest cross-realm matcher there is: the browser
357
+ * inspector in `website/` is where one is typed, and a worker is where the filtering goes
358
+ * (0.6.285).
359
+ */
360
+ const test = isRegExpMatcher(match)
324
361
  ? matchesText(match)
325
362
  : assertMatcher(match, 'matchSignals', 'a RegExp or a predicate on the label', 'pass a RegExp for a pattern, or findSignals(header, label) for an exact label — the ' +
326
363
  'case this function deliberately does not cover');
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/header/lookup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/header/lookup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../src/text/describe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA2DpD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAC/E,MAAM,CAER"}
1
+ {"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../src/text/describe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAyEpD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAC/E,MAAM,CAER"}
@@ -34,9 +34,21 @@ export function describeValue(value) {
34
34
  * `decodeHeaderLatin1(buffer)` is a fetch result, and "an object" says nothing a reader can act
35
35
  * on. The tag, not `instanceof`: it is the same across realms, which is why `io/bytes.ts` uses it
36
36
  * too. Never the contents (0.6.116).
37
+ *
38
+ * The buffer half of that said `instanceof` anyway, which is the defect `io/bytes.ts` describes
39
+ * in those same words and fixed in its own guard in 0.3.20: an ArrayBuffer from another realm —
40
+ * an iframe, an Electron contextBridge, jsdom, a Node `vm` context — is a "real, fully usable
41
+ * ArrayBuffer", and `byteSource` accepts one. This module then could not name the thing the
42
+ * package next door takes, so `toPhysical(signal, thatBuffer)` was refused as "an object" while
43
+ * the identical buffer from this realm was refused as "ArrayBuffer". `SharedArrayBuffer` comes
44
+ * with it, because `byteSource` admits that tag too. Inlined rather than imported: layer 1
45
+ * cannot reach layer 5 (0.6.284).
37
46
  */
38
- if (ArrayBuffer.isView(value) || value instanceof ArrayBuffer) {
39
- return Object.prototype.toString.call(value).slice(8, -1);
47
+ const tag = Object.prototype.toString.call(value);
48
+ if (ArrayBuffer.isView(value) ||
49
+ tag === '[object ArrayBuffer]' ||
50
+ tag === '[object SharedArrayBuffer]') {
51
+ return tag.slice(8, -1);
40
52
  }
41
53
  /*
42
54
  * A REGEXP, by the same tag, for the same reason, in the place it is likeliest to turn up.
@@ -54,7 +66,7 @@ export function describeValue(value) {
54
66
  * `String(value)` is the source as written — `/EEG/i` — which is the whole of what a reader needs
55
67
  * to recognise it, and it is a pattern they typed rather than data read out of a file.
56
68
  */
57
- if (Object.prototype.toString.call(value) === '[object RegExp]') {
69
+ if (tag === '[object RegExp]') {
58
70
  return `the RegExp ${String(value)}`;
59
71
  }
60
72
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/text/describe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,iGAAiG;AACjG,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,cAAc,KAAK,GAAG,CAAC;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5E,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IAC5C;;;;;;OAMG;IACH,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QAC9D,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD;;;;;;;;;;;;;;;OAeG;IACH,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,EAAE,CAAC;QAChE,OAAO,cAAc,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACvC,CAAC;IACD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,IAAI,OAAQ,KAA4B,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,mBAAmB,CAAC;IACzF,iGAAiG;IACjG,qFAAqF;IACrF,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,EAAE,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAgF;IAEhF,OAAO,YAAY,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;AAC5F,CAAC"}
1
+ {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/text/describe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,iGAAiG;AACjG,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,cAAc,KAAK,GAAG,CAAC;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5E,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IAC5C;;;;;;;;;;;;;;;OAeG;IACH,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,IACE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;QACzB,GAAG,KAAK,sBAAsB;QAC9B,GAAG,KAAK,4BAA4B,EACpC,CAAC;QACD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD;;;;;;;;;;;;;;;OAeG;IACH,IAAI,GAAG,KAAK,iBAAiB,EAAE,CAAC;QAC9B,OAAO,cAAc,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACvC,CAAC;IACD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,IAAI,OAAQ,KAA4B,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,mBAAmB,CAAC;IACzF,iGAAiG;IACjG,qFAAqF;IACrF,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,EAAE,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAgF;IAEhF,OAAO,YAAY,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;AAC5F,CAAC"}
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.285
10
+
11
+ - **Fixed** `matchSignals` refusing a RegExp built in another realm — an iframe, a worker, an Electron
12
+ contextBridge, jsdom, a Node `vm` context — with a message that named it a RegExp: "the matcher is
13
+ the RegExp /EEG/i, and this call takes a RegExp or a predicate on the label. Next: pass a RegExp for
14
+ a pattern". Every clause of that is true of what the caller did.
15
+ - The dispatch said `match instanceof RegExp`, which is false across a realm boundary, so the pattern
16
+ fell through to the branch that wants a function. The subject was right because `describeValue` has
17
+ read the built-in tag since 0.6.269, so one half of `header/lookup.ts` could name the value a RegExp
18
+ while the half beside it decided it was not one.
19
+ - Nothing in the matching needed changing: `matchesText` recompiles from `.source` and `.flags`, which
20
+ every realm spells the same, so the dispatch was keeping out a pattern the matcher could always have
21
+ used.
22
+ - The rule now lives in one place, `isRegExpMatcher`, for the two calls that dispatch on it.
23
+
24
+ ## 0.6.284
25
+
26
+ - **Fixed** `describeValue` naming an `ArrayBuffer` from another realm "an object". `ArrayBuffer.isView`
27
+ is a brand check and so is realm-safe, but the buffer arm beside it said `instanceof ArrayBuffer`,
28
+ which is false for a buffer that crossed an iframe, an Electron contextBridge, jsdom or a Node `vm`
29
+ boundary.
30
+ - `byteSource` takes such a buffer: `io/bytes.ts` has matched the built-in tag since 0.3.20, and its
31
+ docblock calls one "a real, fully usable ArrayBuffer from another realm". So the package accepted the
32
+ buffer at the door and could not name it at any of the roughly forty guards that read their subject
33
+ out of `describeValue` — `toPhysical(signal, buffer)` was refused as "the samples are an object"
34
+ while the identical buffer built in this realm was refused as "the samples are ArrayBuffer".
35
+ - The describer's own docblock has stated the rule since 0.6.116 — "The tag, not `instanceof`: it is
36
+ the same across realms, which is why `io/bytes.ts` uses it too" — three lines above the branch that
37
+ did not follow it.
38
+ - `SharedArrayBuffer` is named too, because `byteSource` admits that tag as well.
39
+
9
40
  ## 0.6.283
10
41
 
11
42
  - **Fixed** `trimToWindow` answering with an empty signal for a channel that declares no samples per
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.6.283",
3
+ "version": "0.6.285",
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",
package/src/constants.ts CHANGED
@@ -93,4 +93,4 @@ export const SIGNAL_FIELD_BLOCK_OFFSETS = {
93
93
  } as const;
94
94
 
95
95
  /** Published package version. Kept in sync with package.json by a test. */
96
- export const VERSION = '0.6.283';
96
+ export const VERSION = '0.6.285';
@@ -330,6 +330,24 @@ export function assertMatcher<T>(match: T, call: string, accepts: string, instea
330
330
  );
331
331
  }
332
332
 
333
+ /**
334
+ * Whether a matcher is a RegExp, by the built-in tag.
335
+ *
336
+ * `instanceof RegExp` is false for a pattern built in another realm — an iframe, a worker, an
337
+ * Electron contextBridge, jsdom, a Node `vm` context — which is the rule `io/bytes.ts`,
338
+ * `bytes/latin1.ts`, `io/source.ts`, `decode/digital.ts` and `errors.ts` each state for their own
339
+ * guard, and `text/describe.ts` applied to its buffer arm in 0.6.284. A tag comes from
340
+ * `Symbol.toStringTag` on the prototype and every realm agrees on it.
341
+ *
342
+ * One home for the two calls that dispatch on it, `matchSignals` here and `filterAnnotationsByText`
343
+ * next door, for the reason 0.6.121 gives for `isByteArray`: two copies of a rule have to be kept
344
+ * in agreement and one does not. A type guard rather than a bare comparison, so the `else` branch
345
+ * still narrows to the predicate (0.6.285).
346
+ */
347
+ export function isRegExpMatcher(match: unknown): match is RegExp {
348
+ return Object.prototype.toString.call(match) === '[object RegExp]';
349
+ }
350
+
333
351
  export function matchesText(match: RegExp): (text: string) => boolean {
334
352
  const pattern = new RegExp(match.source, match.flags);
335
353
  return (text: string): boolean => {
@@ -358,16 +376,35 @@ export function matchSignals(
358
376
  ): readonly EdfSignal[] {
359
377
  assertHeaderSignals(header, 'matchSignals');
360
378
  assertSelector(match, 'matchSignals', 'a RegExp, or a function taking a label');
361
- const test =
362
- match instanceof RegExp
363
- ? matchesText(match)
364
- : assertMatcher(
365
- match,
366
- 'matchSignals',
367
- 'a RegExp or a predicate on the label',
368
- 'pass a RegExp for a pattern, or findSignals(header, label) for an exact label — the ' +
369
- 'case this function deliberately does not cover',
370
- );
379
+ /*
380
+ * The TAG, not `instanceof`, which refused a RegExp by naming it a RegExp.
381
+ *
382
+ * `instanceof RegExp` is false for a pattern built in another realm — an iframe, a worker, an
383
+ * Electron contextBridge, jsdom, a Node `vm` context — so a cross-realm `/EEG/i` fell to
384
+ * `assertMatcher`, which wants a function, and was refused with "the matcher is the RegExp /EEG/i,
385
+ * and this call takes a RegExp or a predicate on the label. Next: pass a RegExp for a pattern".
386
+ * The subject is right because `describeValue` reads the tag (0.6.269); the rule and the advice
387
+ * then both describe what the caller had already done.
388
+ *
389
+ * Nothing below needs changing for it to work: `matchesText` recompiles from `.source` and
390
+ * `.flags`, which every realm spells the same, so the pattern this dispatch was keeping out was
391
+ * one the matcher could always have used.
392
+ *
393
+ * The rule is the package's own, stated in `io/bytes.ts`, `bytes/latin1.ts`, `io/source.ts`,
394
+ * `decode/digital.ts`, `errors.ts` and `text/describe.ts`, and extended to the describer's buffer
395
+ * arm in 0.6.284. A montage selector is the likeliest cross-realm matcher there is: the browser
396
+ * inspector in `website/` is where one is typed, and a worker is where the filtering goes
397
+ * (0.6.285).
398
+ */
399
+ const test = isRegExpMatcher(match)
400
+ ? matchesText(match)
401
+ : assertMatcher(
402
+ match,
403
+ 'matchSignals',
404
+ 'a RegExp or a predicate on the label',
405
+ 'pass a RegExp for a pattern, or findSignals(header, label) for an exact label — the ' +
406
+ 'case this function deliberately does not cover',
407
+ );
371
408
  /*
372
409
  * An ASYNC predicate, which matches EVERYTHING.
373
410
  *
@@ -30,9 +30,23 @@ export function describeValue(value: unknown): string {
30
30
  * `decodeHeaderLatin1(buffer)` is a fetch result, and "an object" says nothing a reader can act
31
31
  * on. The tag, not `instanceof`: it is the same across realms, which is why `io/bytes.ts` uses it
32
32
  * too. Never the contents (0.6.116).
33
+ *
34
+ * The buffer half of that said `instanceof` anyway, which is the defect `io/bytes.ts` describes
35
+ * in those same words and fixed in its own guard in 0.3.20: an ArrayBuffer from another realm —
36
+ * an iframe, an Electron contextBridge, jsdom, a Node `vm` context — is a "real, fully usable
37
+ * ArrayBuffer", and `byteSource` accepts one. This module then could not name the thing the
38
+ * package next door takes, so `toPhysical(signal, thatBuffer)` was refused as "an object" while
39
+ * the identical buffer from this realm was refused as "ArrayBuffer". `SharedArrayBuffer` comes
40
+ * with it, because `byteSource` admits that tag too. Inlined rather than imported: layer 1
41
+ * cannot reach layer 5 (0.6.284).
33
42
  */
34
- if (ArrayBuffer.isView(value) || value instanceof ArrayBuffer) {
35
- return Object.prototype.toString.call(value).slice(8, -1);
43
+ const tag = Object.prototype.toString.call(value);
44
+ if (
45
+ ArrayBuffer.isView(value) ||
46
+ tag === '[object ArrayBuffer]' ||
47
+ tag === '[object SharedArrayBuffer]'
48
+ ) {
49
+ return tag.slice(8, -1);
36
50
  }
37
51
  /*
38
52
  * A REGEXP, by the same tag, for the same reason, in the place it is likeliest to turn up.
@@ -50,7 +64,7 @@ export function describeValue(value: unknown): string {
50
64
  * `String(value)` is the source as written — `/EEG/i` — which is the whole of what a reader needs
51
65
  * to recognise it, and it is a pattern they typed rather than data read out of a file.
52
66
  */
53
- if (Object.prototype.toString.call(value) === '[object RegExp]') {
67
+ if (tag === '[object RegExp]') {
54
68
  return `the RegExp ${String(value)}`;
55
69
  }
56
70
  /*