mirror of
https://github.com/keymanapp/keyman.git
synced 2026-10-13 09:27:30 +00:00
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
70 lines
1.6 KiB
JSON
70 lines
1.6 KiB
JSON
{
|
|
"name": "@keymanapp/kmc-ldml",
|
|
"description": "Keyman Developer LDML keyboard compiler",
|
|
"keywords": [
|
|
"keyboard",
|
|
"keyman",
|
|
"ldml",
|
|
"unicode"
|
|
],
|
|
"type": "module",
|
|
"exports": {
|
|
".": "./build/src/main.js"
|
|
},
|
|
"files": [
|
|
"/build/src/"
|
|
],
|
|
"scripts": {
|
|
"build": "tsc -b",
|
|
"lint": "eslint .",
|
|
"test": "gosh ./build.sh test"
|
|
},
|
|
"author": "Marc Durdin <marc@keyman.com> (https://github.com/mcdurdin)",
|
|
"license": "MIT",
|
|
"bugs": {
|
|
"url": "https://github.com/keymanapp/keyman/issues"
|
|
},
|
|
"dependencies": {
|
|
"@keymanapp/keyman-version": "*",
|
|
"@keymanapp/kmc-kmn": "*",
|
|
"@keymanapp/ldml-keyboard-constants": "*",
|
|
"restructure": "git+https://github.com/keymanapp/dependency-restructure.git#7a188a1e26f8f36a175d95b67ffece8702363dfc",
|
|
"semver": "^7.5.2"
|
|
},
|
|
"devDependencies": {
|
|
"@keymanapp/developer-test-helpers": "*",
|
|
"@keymanapp/resources-gosh": "*",
|
|
"@types/chai": "^4.1.7",
|
|
"@types/common-tags": "^1.8.4",
|
|
"@types/mocha": "^5.2.7",
|
|
"@types/node": "^20.4.1",
|
|
"@types/semver": "^7.3.12",
|
|
"c8": "^7.12.0",
|
|
"chai": "^4.3.4",
|
|
"chalk": "^2.4.2",
|
|
"common-tags": "^1.8.2",
|
|
"mocha": "^8.4.0",
|
|
"ts-node": "^9.1.1",
|
|
"typescript": "^4.9.5"
|
|
},
|
|
"mocha": {
|
|
"spec": "build/test/**/test-*.js",
|
|
"require": [
|
|
"source-map-support/register"
|
|
]
|
|
},
|
|
"c8": {
|
|
"all": true,
|
|
"src": [
|
|
"src/"
|
|
],
|
|
"exclude-after-remap": true,
|
|
"exclude": [
|
|
"test/"
|
|
]
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/keymanapp/keyman.git"
|
|
}
|
|
}
|