Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
Find a file
Eberhard Beilharz 66c5f124cf
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Merge pull request #15497 from keymanapp/maint/web/jstests
maint(web): re-add engine .js tests

PR #15093 merged multiple engine modules into one. However, in doing so we lost the .js tests and ran only the .ts ones. This change re-adds the .js tests and fixes them where the code diverged since then.

Other changes: 
- rename `queryEngine.ts` to `cloudQueryEngine.ts` to match the class name 
- remove unused `keyboard-storage/cloud/index.ts` 
- expose `CLOUD_TIMEOUT_ERR` and `CLOUD_STUB_REGISTRATION_ERR` as `unitTestEndpoints` 
- add `test/resources` to exports in `web/package.json`. This was necessary because the compiled .ts test files are under `web/build` whereas the .js test files are under `web/src` and so the relative paths in imports no longer work. Also fix the imports in test files.
- remove `node-keyboard-loader.ts` which was just a wrapper around `NodeKeyboardLoader`.
- some cleanup and removal of default exports and aliases.
- moved `specialized-backspace.tests.js` to `specialized-backspace.tests.ts` and fixed resulting issues/warnings.
- apply fix from #15477 if KEYMAN_ROOT is not set
- inline some consts so that we don't have to export them for unit testing
- create `getKeymanRoot` and `getWebTestResourcesPath` helper functions to DRY out the code
- run `languageProcessortests.js` without coverage to prevent a failure creating the coverage report

I'm not happy to put the compiled files for `test/auto/resources` under `web/src/test/auto/resources/build`, but that's the only way I got it to work. If I put the compiled files in `web/build/test/resources` it couldn't find the types for `promise-status-async`.

Follows: #15093
2026-03-23 18:15:53 +01:00
.github maint(linux): remove EOL Ubuntu 25.04 Plucky 2026-01-13 18:04:57 +01:00
android chore: Merge branch 'epic/web-core' into auto/A19S24-merge-master-into-web-core 2026-03-16 04:49:38 +01:00
common chore: Merge branch 'epic/web-core' into auto/A19S24-merge-master-into-web-core 2026-03-16 04:49:38 +01:00
core chore: Merge branch 'epic/web-core' into auto/A19S24-merge-master-into-web-core 2026-03-16 04:49:38 +01:00
developer chore: Merge branch 'epic/web-core' into auto/A19S24-merge-master-into-web-core 2026-03-16 04:49:38 +01:00
docs chore: Merge branch 'epic/web-core' into auto/A19S24-merge-master-into-web-core 2026-03-16 04:49:38 +01:00
ios chore: Merge branch 'epic/web-core' into auto/A19S24-merge-master-into-web-core 2026-03-16 04:49:38 +01:00
linux chore: Merge branch 'epic/web-core' into auto/A19S24-merge-master-into-web-core 2026-03-16 04:49:38 +01:00
mac Merge pull request #15484 from keymanapp/chore/mac/15475-xcode-26 2026-02-06 09:48:38 -05:00
oem/firstvoices maint(fv): update Cartfile for Xcode 26 2026-03-02 09:16:38 -05:00
resources chore: Merge branch 'epic/web-core' into auto/A19S24-merge-master-into-web-core 2026-03-16 04:49:38 +01:00
web maint(web): cleanup imports 2026-03-23 15:43:17 +01:00
windows Merge pull request #15269 from keymanapp/fix/windows/14261/splash-screen-unresponsive 2026-02-05 09:34:49 +10:00
.clang-format feat(linux): work on 2nd round of comments on PR 11816 2024-06-20 17:44:21 +02:00
.editorconfig chore(linux): Address a few more lintian warnings 2022-03-15 15:32:10 +01:00
.eslintrc.cjs maint: patchup eslint configuration 2025-05-02 14:06:33 +07:00
.flake8 chore(linux): Add integration tests for ibus-keyman 2021-11-04 09:22:28 +01:00
.gitattributes maint(common): use LF line endings for scripts 2025-08-18 17:50:28 +02:00
.gitignore Merge branch 'epic/win-arm' into feat/windows/11905/keymanx64-keymanarm64 2025-10-01 14:11:23 +10:00
.nycrc.json feat(developer): fixup and prepare build scripts and docs for kmc 2022-09-19 06:36:06 +10:00
.shellcheckrc maint(linux): remove several shellcheck directives and warnings 2025-09-23 18:30:16 +02:00
build.sh maint(common): consolidate builder scripts 2025-08-02 08:11:24 +10:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2021-10-08 10:46:53 +11:00
configure-repo.sh chore: update docs and non-standard readlink refs 2023-02-22 10:41:54 +07:00
CONTRIBUTING.md chore: add maint to CONTRIBUTING.md 2025-04-29 11:15:55 +07:00
crowdin.yml fix(common): Remove custom language mappings in crowdin.yml 2026-01-13 10:49:52 +07:00
HISTORY.md auto: increment master version to 19.0.215 2026-03-12 13:02:20 -05:00
LICENSE.md maint(linux): fix lintian warnings 2025-05-13 20:07:32 +02:00
package-lock.json chore(web): Merge branch 'epic/web-core' into maint/web/jstests 2026-03-20 18:03:47 +01:00
package.json maint(web): downgrade playwright to 1.46.1 2026-03-16 17:00:43 +01:00
README.md docs(common): update README with number of languages and keyboards 2025-05-21 20:36:20 +02:00
TIER.md chore: start history/version infrastructure 2020-01-29 08:54:32 +11:00
tsconfig.base.json refactor(web): change @keymanapp/web-utils to keyman/common/web-utils 2025-11-06 07:24:36 +01:00
tsconfig.json refactor(web): move sentry-manager and es-bundling to common 2025-11-06 15:28:04 +01:00
VERSION.md auto: increment master version to 19.0.215 2026-03-12 13:02:20 -05:00

Keyman

Keyman makes it possible for you to type in any language on Windows, macOS, Linux, iPhone, iPad, Android tablets and phones, and even instantly in your web browser. Create keyboard layouts with Keyman Developer and share them with the community in the keyboards repository. The Keyman Community have so far contributed well over 1,000 keyboard layouts for over 2,500 languages!

License

Copyright (c) SIL Global.

Keyman is an open source project distributed under the MIT license.

Get Involved

Development Status

Important Links