edfcore 0.3.24 → 0.3.25
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/CHANGELOG.md +15 -0
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/tal/grammar.d.ts.map +1 -1
- package/dist/tal/grammar.js +12 -1
- package/dist/tal/grammar.js.map +1 -1
- package/package.json +1 -1
- package/src/constants.ts +1 -1
- package/src/tal/grammar.ts +21 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,21 @@ 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.3.25
|
|
10
|
+
|
|
11
|
+
- **Fixed** a TAL duration that is out of range being reported as a grammar violation. `9223372036855`
|
|
12
|
+
seconds is about 292,000 years — past the ±2^63 tick range — and its thirteen digits are perfectly
|
|
13
|
+
conformant. edfcore told the writer the field *"is not 1\*DIGIT [ \".\" 1\*DIGIT ]"* and
|
|
14
|
+
volunteered *"a duration is never signed"*. Hexdump the region and you find thirteen unsigned
|
|
15
|
+
digits and no sign, and conclude the parser is broken.
|
|
16
|
+
- The two conditions were folded into one branch. **The onset path has always kept them apart** —
|
|
17
|
+
grammar failure and int64 overflow have separate messages there — so the identical defect on the
|
|
18
|
+
two fields of one TAL produced two explanations that contradicted each other. The duration branch
|
|
19
|
+
now mirrors the onset one.
|
|
20
|
+
- The TAL is still dropped and the annotation is still lost; only the explanation becomes true. A
|
|
21
|
+
duration that really is malformed — a signed one, say — still gets the grammar message, and the
|
|
22
|
+
"never signed" hint is the right one there.
|
|
23
|
+
|
|
9
24
|
## 0.3.24
|
|
10
25
|
|
|
11
26
|
- **Fixed** `MISSING_EDFPLUS_MARKER` telling a BDF writer to put `"EDF+C"` or `"EDF+D"` in the
|
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.3.
|
|
112
|
+
export declare const VERSION = "0.3.25";
|
|
113
113
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grammar.d.ts","sourceRoot":"","sources":["../../src/tal/grammar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAWH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,kBAAkB,CAAC;AAE3D,6EAA6E;AAC7E,MAAM,WAAW,OAAO;IACtB,oFAAoF;IACpF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,uEAAuE;AACvE,MAAM,MAAM,YAAY,GACpB,eAAe,GACf,6BAA6B,GAC7B,+BAA+B,GAC/B,0BAA0B,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,gGAAgG;AAChG,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,qCAAqC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;CACtC;AAED,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,iGAAiG;AACjG,eAAO,MAAM,qBAAqB,EAAE,MAAW,CAAC;AAkGhD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAItF;
|
|
1
|
+
{"version":3,"file":"grammar.d.ts","sourceRoot":"","sources":["../../src/tal/grammar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAWH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,kBAAkB,CAAC;AAE3D,6EAA6E;AAC7E,MAAM,WAAW,OAAO;IACtB,oFAAoF;IACpF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,uEAAuE;AACvE,MAAM,MAAM,YAAY,GACpB,eAAe,GACf,6BAA6B,GAC7B,+BAA+B,GAC/B,0BAA0B,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,gGAAgG;AAChG,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,qCAAqC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;CACtC;AAED,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,iGAAiG;AACjG,eAAO,MAAM,qBAAqB,EAAE,MAAW,CAAC;AAkGhD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAItF;AAyUD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,cAAc,CAmChB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAM3D"}
|
package/dist/tal/grammar.js
CHANGED
|
@@ -226,11 +226,22 @@ function scanTal(region, start, ordinal, log) {
|
|
|
226
226
|
}
|
|
227
227
|
durationRaw = decodeHeaderLatin1(sliceBytes(region, durationStart, durationLength));
|
|
228
228
|
const duration = parseUnsignedTicks(durationRaw);
|
|
229
|
-
if (!duration.ok
|
|
229
|
+
if (!duration.ok) {
|
|
230
230
|
logIssue(log, 'TAL_MALFORMED', 'duration-grammar', region, durationStart, Math.max(durationLength, 1), `0x15 is present but the duration "${durationRaw}" is not 1*DIGIT [ "." 1*DIGIT ] — a ` +
|
|
231
231
|
'duration is never signed — so the TAL was skipped');
|
|
232
232
|
return { tal: undefined, next };
|
|
233
233
|
}
|
|
234
|
+
// A SEPARATE branch, mirroring the onset path above. Folding overflow into the grammar
|
|
235
|
+
// failure told a writer whose duration is thirteen conformant digits that the field "is not
|
|
236
|
+
// 1*DIGIT" and volunteered "a duration is never signed" — so they hexdump the region, find
|
|
237
|
+
// unsigned digits and no sign, and conclude the parser is broken. The onset path has always
|
|
238
|
+
// kept the two apart, so the same defect on the two fields of one TAL produced two messages
|
|
239
|
+
// that contradicted each other (fixed in 0.3.25).
|
|
240
|
+
if (outsideInt64(duration.ticks)) {
|
|
241
|
+
logIssue(log, 'TAL_MALFORMED', 'duration-out-of-range', region, durationStart, Math.max(durationLength, 1), `the duration "${durationRaw}" is outside the +/-2^63 tick range edfcore can represent, ` +
|
|
242
|
+
'so the TAL was skipped');
|
|
243
|
+
return { tal: undefined, next };
|
|
244
|
+
}
|
|
234
245
|
durationTicks = duration.ticks;
|
|
235
246
|
}
|
|
236
247
|
const texts = [];
|
package/dist/tal/grammar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grammar.js","sourceRoot":"","sources":["../../src/tal/grammar.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"grammar.js","sourceRoot":"","sources":["../../src/tal/grammar.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/constants.ts
CHANGED
package/src/tal/grammar.ts
CHANGED
|
@@ -238,6 +238,7 @@ type TalIssueKind =
|
|
|
238
238
|
| 'onset-out-of-range'
|
|
239
239
|
| 'duration-field-too-long'
|
|
240
240
|
| 'duration-grammar'
|
|
241
|
+
| 'duration-out-of-range'
|
|
241
242
|
| 'last-text-unterminated'
|
|
242
243
|
| 'text-contains-separator'
|
|
243
244
|
| 'region-tail-not-nul';
|
|
@@ -449,7 +450,7 @@ function scanTal(region: Uint8Array, start: number, ordinal: number, log: IssueL
|
|
|
449
450
|
}
|
|
450
451
|
durationRaw = decodeHeaderLatin1(sliceBytes(region, durationStart, durationLength));
|
|
451
452
|
const duration = parseUnsignedTicks(durationRaw);
|
|
452
|
-
if (!duration.ok
|
|
453
|
+
if (!duration.ok) {
|
|
453
454
|
logIssue(
|
|
454
455
|
log,
|
|
455
456
|
'TAL_MALFORMED',
|
|
@@ -462,6 +463,25 @@ function scanTal(region: Uint8Array, start: number, ordinal: number, log: IssueL
|
|
|
462
463
|
);
|
|
463
464
|
return { tal: undefined, next };
|
|
464
465
|
}
|
|
466
|
+
// A SEPARATE branch, mirroring the onset path above. Folding overflow into the grammar
|
|
467
|
+
// failure told a writer whose duration is thirteen conformant digits that the field "is not
|
|
468
|
+
// 1*DIGIT" and volunteered "a duration is never signed" — so they hexdump the region, find
|
|
469
|
+
// unsigned digits and no sign, and conclude the parser is broken. The onset path has always
|
|
470
|
+
// kept the two apart, so the same defect on the two fields of one TAL produced two messages
|
|
471
|
+
// that contradicted each other (fixed in 0.3.25).
|
|
472
|
+
if (outsideInt64(duration.ticks)) {
|
|
473
|
+
logIssue(
|
|
474
|
+
log,
|
|
475
|
+
'TAL_MALFORMED',
|
|
476
|
+
'duration-out-of-range',
|
|
477
|
+
region,
|
|
478
|
+
durationStart,
|
|
479
|
+
Math.max(durationLength, 1),
|
|
480
|
+
`the duration "${durationRaw}" is outside the +/-2^63 tick range edfcore can represent, ` +
|
|
481
|
+
'so the TAL was skipped',
|
|
482
|
+
);
|
|
483
|
+
return { tal: undefined, next };
|
|
484
|
+
}
|
|
465
485
|
durationTicks = duration.ticks;
|
|
466
486
|
}
|
|
467
487
|
|