spiegel-keyman/common
Marc Durdin 91cd73602a fix(developer): rwrite ldml visual keyboard compiler
The visual keyboard compiler was never finished in 17.0. This rewrites
it to:

1. Use the kmxplus data rather than reading from xml directly
2. Fill in `visualkeyboard.header.kbdname`
3. Support modifiers
4. Handle encoded characters like `\u{1234}`
5. Handle string variables like `${one}`*

Additional unit tests have been added to verify the behavior of the
visual keyboard compiler in more detail.

* String variable tests will be enabled in next commit (which is a
cherry-pick of #12404).

Other fixes:

1. The LDML XML reader was relying on its input being a Node.js `Buffer`
   even though it was declared `Uint8Array`, as it implicitly used
   `Buffer.toString()` to do text conversion. (`Buffer` subclasses from
   `Uint8Array`). This breaks when using `Uint8Array` directly and means
   we had an implicit dependency on Node.js. See also #12331.
2. XML errors were not captured in the LDML XML reader. See also #12331.
3. The unused and unfinished touch-layout-compiler.ts and
   keymanweb-compiler.ts have been removed along with corresponding unit
   tests and fixtures. These will be replaced by Core implementations;
   see #12291.

Fixes: #12395
Cherry-pick-of: #12402
2024-09-12 10:02:18 +07:00
..
include fix(common,core): support other lookup for modifiers 2024-04-01 23:21:33 -05:00
linux chore(common): run common and resources tests 2023-04-28 14:07:34 +07:00
mac chore(common): run common and resources tests 2023-04-28 14:07:34 +07:00
models fix(web): add limited Array.from polyfill for lm-worker use 2024-06-07 12:02:17 +07:00
predictive-text fix(web): fixes pred-text unit test instability 2024-04-22 15:40:37 +07:00
resources chore(common): Update keymanweb-osk.ttf to 4.1 2024-03-21 20:06:11 +07:00
schemas chore(common): loosen .keyman-touch-layout schema layer id requirements 2024-02-23 10:38:45 +07:00
test fix(developer): ensure fatal errors report message or made non-fatal 2024-02-20 11:10:39 +07:00
tools fix(common): hextobin should return an error status 2023-12-14 15:49:01 -06:00
web fix(developer): rwrite ldml visual keyboard compiler 2024-09-12 10:02:18 +07:00
windows fix(developer): make top row of Character Map 1 pixel to avoid DIV/0 in gestures 2024-05-28 14:29:16 +07:00
build.sh chore(common): run common and resources tests 2023-04-28 14:07:34 +07:00