edfcore 0.3.65 → 0.3.66
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 +16 -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 +18 -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 +19 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,22 @@ 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.66
|
|
10
|
+
|
|
11
|
+
- **Fixed** the TAL diagnostic preview hiding the very byte it was complaining about.
|
|
12
|
+
- `escapeControls` escaped C0 and DEL, so the Latin-1 preview passed bytes **0x80-0x9F** through
|
|
13
|
+
as literal U+0080-U+009F — the Unicode C1 controls, which render as nothing. The
|
|
14
|
+
`Bytes at that offset: "..."` clause that every TAL diagnostic carries as its evidence therefore
|
|
15
|
+
showed `Wach<0x96>Beginn` as `WachBeginn`.
|
|
16
|
+
- That block is not an edge case. In cp1252, the encoding that produces those bytes, 0x80-0x9F is
|
|
17
|
+
the smart quotes, the en and em dashes and the ellipsis — the single commonest source of an
|
|
18
|
+
invalid-UTF-8 annotation, which is to say the main case `ANNOTATION_TEXT_NOT_UTF8` exists for.
|
|
19
|
+
A reader shown `WachBeginn` sees a perfectly ordinary word and no reason for the diagnostic.
|
|
20
|
+
- It now prints `Wach\x96Beginn`. The rule below 0xA0 matches `quote()` in
|
|
21
|
+
`diagnostics/format.ts`, which escapes anything non-printable.
|
|
22
|
+
- 0xA0-0xFF stay literal. Those are printable in Latin-1 and `é` and `µV` must remain readable —
|
|
23
|
+
that is the whole reason the preview decodes as Latin-1 rather than UTF-8.
|
|
24
|
+
|
|
9
25
|
## 0.3.65
|
|
10
26
|
|
|
11
27
|
- **Fixed** `api-errors.md` publishing the wrong signature for `isEdfError` and calling a cast
|
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.66";
|
|
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;
|
|
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;AAoHhD;;;;;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
|
@@ -80,12 +80,29 @@ function indexOfByte(region, start, end, byte) {
|
|
|
80
80
|
}
|
|
81
81
|
return -1;
|
|
82
82
|
}
|
|
83
|
+
/** C1: bytes 0x80-0x9F, which decode to U+0080-U+009F and render as nothing. */
|
|
84
|
+
const C1_FIRST = 0x80;
|
|
85
|
+
const C1_LAST = 0x9f;
|
|
86
|
+
/**
|
|
87
|
+
* Escapes every byte that would otherwise be invisible or would break the line.
|
|
88
|
+
*
|
|
89
|
+
* C1 is in scope, not just C0 and DEL. Under Latin-1 the bytes 0x80-0x9F decode to the Unicode C1
|
|
90
|
+
* controls, which render as nothing — and in cp1252, the encoding that produces them, that block is
|
|
91
|
+
* the smart quotes, the en and em dash and the ellipsis. It is the single commonest source of an
|
|
92
|
+
* invalid-UTF-8 annotation, which is to say the main case `ANNOTATION_TEXT_NOT_UTF8` exists for.
|
|
93
|
+
* Passing it through meant the message's "Bytes at that offset: ..." hid the very byte it was
|
|
94
|
+
* complaining about: `Wach<0x96>Beginn` printed as `WachBeginn` (fixed in 0.3.66).
|
|
95
|
+
*
|
|
96
|
+
* 0xA0-0xFF stay literal. Those are printable in Latin-1 and é must remain readable — that is the
|
|
97
|
+
* reason the preview decodes as Latin-1 in the first place. The rule below 0xA0 now matches
|
|
98
|
+
* `quote()` in `diagnostics/format.ts`, which escapes anything non-printable.
|
|
99
|
+
*/
|
|
83
100
|
function escapeControls(text) {
|
|
84
101
|
let out = '';
|
|
85
102
|
for (let i = 0; i < text.length; i += 1) {
|
|
86
103
|
const code = text.charCodeAt(i);
|
|
87
104
|
out +=
|
|
88
|
-
code < ASCII_FIRST_PRINTABLE || code === ASCII_DEL
|
|
105
|
+
code < ASCII_FIRST_PRINTABLE || code === ASCII_DEL || (code >= C1_FIRST && code <= C1_LAST)
|
|
89
106
|
? `\\x${code.toString(16).padStart(2, '0')}`
|
|
90
107
|
: text.charAt(i);
|
|
91
108
|
}
|
package/dist/tal/grammar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grammar.js","sourceRoot":"","sources":["../../src/tal/grammar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAoElE,iGAAiG;AACjG,MAAM,CAAC,MAAM,qBAAqB,GAAW,EAAE,CAAC;AAEhD;;;;GAIG;AACH,MAAM,SAAS,GAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;AACvC,MAAM,SAAS,GAAW,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AAEzC;;;;GAIG;AACH,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAErC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC,MAAM,cAAc,GAAG,IAAI,CAAC;AAC5B,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,qBAAqB,GAAG,IAAI,CAAC;AA6BnC,mFAAmF;AACnF,IAAI,iBAAqD,CAAC;AAE1D;;;;;;;;GAQG;AACH,SAAS,WAAW;IAClB,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,OAAO,GAAI,UAA2D,CAAC,WAAW,CAAC;QACzF,iBAAiB;YACf,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,MAAkB,EAAE,KAAa;IACjD,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,WAAW,CAAC,MAAkB,EAAE,KAAa,EAAE,GAAW,EAAE,IAAY;IAC/E,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,GAAG;YACD,IAAI,GAAG,qBAAqB,IAAI,IAAI,KAAK,SAAS;
|
|
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
|
@@ -187,12 +187,30 @@ function indexOfByte(region: Uint8Array, start: number, end: number, byte: numbe
|
|
|
187
187
|
return -1;
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
+
/** C1: bytes 0x80-0x9F, which decode to U+0080-U+009F and render as nothing. */
|
|
191
|
+
const C1_FIRST = 0x80;
|
|
192
|
+
const C1_LAST = 0x9f;
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Escapes every byte that would otherwise be invisible or would break the line.
|
|
196
|
+
*
|
|
197
|
+
* C1 is in scope, not just C0 and DEL. Under Latin-1 the bytes 0x80-0x9F decode to the Unicode C1
|
|
198
|
+
* controls, which render as nothing — and in cp1252, the encoding that produces them, that block is
|
|
199
|
+
* the smart quotes, the en and em dash and the ellipsis. It is the single commonest source of an
|
|
200
|
+
* invalid-UTF-8 annotation, which is to say the main case `ANNOTATION_TEXT_NOT_UTF8` exists for.
|
|
201
|
+
* Passing it through meant the message's "Bytes at that offset: ..." hid the very byte it was
|
|
202
|
+
* complaining about: `Wach<0x96>Beginn` printed as `WachBeginn` (fixed in 0.3.66).
|
|
203
|
+
*
|
|
204
|
+
* 0xA0-0xFF stay literal. Those are printable in Latin-1 and é must remain readable — that is the
|
|
205
|
+
* reason the preview decodes as Latin-1 in the first place. The rule below 0xA0 now matches
|
|
206
|
+
* `quote()` in `diagnostics/format.ts`, which escapes anything non-printable.
|
|
207
|
+
*/
|
|
190
208
|
function escapeControls(text: string): string {
|
|
191
209
|
let out = '';
|
|
192
210
|
for (let i = 0; i < text.length; i += 1) {
|
|
193
211
|
const code = text.charCodeAt(i);
|
|
194
212
|
out +=
|
|
195
|
-
code < ASCII_FIRST_PRINTABLE || code === ASCII_DEL
|
|
213
|
+
code < ASCII_FIRST_PRINTABLE || code === ASCII_DEL || (code >= C1_FIRST && code <= C1_LAST)
|
|
196
214
|
? `\\x${code.toString(16).padStart(2, '0')}`
|
|
197
215
|
: text.charAt(i);
|
|
198
216
|
}
|