spiegel-keyman/common/web/types
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
..
src fix(developer): rwrite ldml visual keyboard compiler 2024-09-12 10:02:18 +07:00
test chore(common): ldml update out of techpreview 🙀 2024-03-02 22:40:38 -06:00
tools chore(developer): verify kmp.json output from kmc-package 2023-10-25 12:07:46 +07:00
.eslintrc.cjs feat(common): precompile json schemas to improve performance 2023-10-05 13:56:53 +07:00
.gitignore feat(common): precompile json schemas to improve performance 2023-10-05 13:56:53 +07:00
build.sh chore(common): ldml update out of techpreview 🙀 2024-03-02 22:40:38 -06:00
package.json feat(web): alternate artifact - es6-bundled Web 2023-12-18 10:32:35 +07:00
tsconfig.json chore: test preserveConstEnums in common/web/types only 2024-01-24 10:55:31 +07:00