spiegel-keyman/common/web
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
..
es-bundling Merge pull request #10257 from keymanapp/feat/web/es6-target-artifact 2024-01-08 15:53:43 +07:00
eslint chore(developer): add eslint devDependency for kmc 2023-04-25 13:44:56 +07:00
gesture-recognizer Merge pull request #11321 from keymanapp/fix/web/gesture-model-failure-handling 2024-05-01 07:52:15 +07:00
input-processor chore(web): Revert "fix(web): OSK now checks pred-text state on init" 2024-07-27 06:38:25 +07:00
keyboard-processor fix(web): more robustness in case of deadkeys 2024-04-17 10:33:16 +07:00
keyman-version feat(web): alternate artifact - es6-bundled Web 2023-12-18 10:32:35 +07:00
lm-message-types chore(common): cleanup final Typescript non-ESM metadata 2023-10-04 12:55:51 +07:00
lm-worker change(web): change after-word whitespace check to be more selective 2024-06-19 08:07:15 +07:00
recorder chore(web): sets up app/browser test suite, ensures Web TS test sets can be isolated 2024-01-22 13:12:40 +07:00
sentry-manager fix(web): null guard missing debug info when reporting to Sentry 2024-05-30 13:55:20 +07:00
tslib chore(web): relocates tslib-treeshaker def, consolidates it further 2023-06-15 10:56:44 +07:00
types fix(developer): rwrite ldml visual keyboard compiler 2024-09-12 10:02:18 +07:00
utils fix(web): fixes kbd-help documentation for help.keyman.com 2024-05-30 13:28:54 +07:00
.gitignore chore(web): move lm-worker into its own folder 2022-04-14 15:33:23 +10:00
build.sh chore(common): add common/web/build.sh, small cleanup 2023-03-14 13:05:27 +07:00
tsconfig.kmw-main-base.json chore(web): kmw-main tsconfig -> /web, redirect in /common/web 2023-06-14 08:22:05 +07:00