Commit graph

546 commits

Author SHA1 Message Date
Eberhard Beilharz
745fa36d24
chore(web): Merge branch 'epic/web-core' into maint/web/jstests
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-03-20 18:03:47 +01:00
Marc Durdin
59a12fd2cb maint(web): downgrade playwright to 1.46.1
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Failing builds on webkit tests on Ubuntu, going back to 'known good'
version for now.
2026-03-16 17:00:43 +01:00
Marc Durdin
ed63b70bb4
Merge branch 'epic/web-core' into auto/A19S22-merge-master-into-web-core 2026-02-13 11:08:05 +07:00
Joshua Horton
b3e045a7a8 change(web): define, utilize cleaner Web test-resource import paths
Build-bot: skip build:web
Test-bot: skip
2026-02-05 10:11:14 -06:00
Eberhard Beilharz
e2b31c488b
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.
- apply fix from #15477 if KEYMAN_ROOT is not set

I'm not happy to put the compiled files 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`.

Also, running the .js tests succeeded but then creating the coverage
report failed. I was not able to find the reason or a fix for that. As a
hack to work around this problem we check the number of failed tests
instead of relying on the exit code of the test.

Follows: #15093
Test-bot: skip
2026-01-26 18:05:23 +01:00
Eberhard Beilharz
12d56453a4
test(web): add e2e tests for KMX keyboard with web-core
Also add similar tests for a JS keyboard.

Test-bot: skip
2025-12-05 19:13:27 +01:00
Eberhard Beilharz
a7083e7960
feat(web): move/add core-adapter module
This change moves the core adapter to core-adapter module which contains
the code to bind to the the WASM core binaries and adds additional type
definitions for Core.

Part-of: #13926
Test-bot: skip
2025-11-14 15:10:20 +01:00
Marc Durdin
d07dbfefd6 chore(web): npm install and remove unused dep 2025-11-11 06:31:33 +01:00
Marc Durdin
2e51955055 chore(web): Merge branch 'refactor/web/merge-engine-modules' into refactor/web/downgrade-web-utils-from-package-to-module 2025-11-06 14:07:19 +01:00
Marc Durdin
d94292959c chore(web): Merge branch 'epic/web-core' into refactor/web/merge-engine-modules 2025-11-06 10:54:25 +01:00
Marc Durdin
41c9cef797 refactor(web): change @keymanapp/web-utils to keyman/common/web-utils
Removes the need for package.json references for @keymanapp/web-utils,
and relies on bundler to include keyman/common/web-utils when building.
2025-11-06 07:24:36 +01:00
Marc Durdin
9d2c23e0d3 refactor(web): merge engine modules
In order to simplify and make the build significantly faster, as well as
reduce duplication of configuration files, we have merged most of the
engine modules into a single module, engine:
  * engine/attachment
  * engine/core-processor
  * engine/dom-utils
  * engine/element-wrappers
  * engine/events
  * engine/interfaces
  * engine/js-processor
  * engine/keyboard
  * engine/keyboard-storage
  * engine/main
  * engine/osk

A few test-specific files have been moved from engine to test, such as
nodeCloudRequester.ts and nodeKeyboardLoader.ts.
2025-11-04 19:13:17 +01:00
Eberhard Beilharz
22a93cd3f6
refactor(web): rename directory element-wrappers → element-text-stores
Also rename module from element-wrappers → element-text-stores.
2025-11-04 17:14:37 +01:00
Eberhard Beilharz
819c9cc3fe
chore: Merge branch 'epic/web-core' into chore/merge-master-into-web-core 2025-05-30 18:25:23 +02:00
Joshua Horton
155c1a2b12 maint: update mocha
Some of the npm audit warnings left after #13897 require an updated `mocha` version to remedy.  As we only really use `mocha` to do unit-testing, it should be safe to update if all of our existing tests pass with the new version.

Test-bot: skip
2025-05-13 14:02:02 +07:00
Eberhard Beilharz
387a697990
chore(web): Merge branch 'epic/web-core' into feat/web/readkbd 2024-09-27 17:35:29 +02:00
Eberhard Beilharz
94b06b7ed7
feat(web): improve errors and tests
Addresses code review comments.
2024-09-16 17:34:03 +02:00
Marc Durdin
9ebd1a9b0a
Merge branch 'epic/web-core' into chore/merge-master-into-web-core 2024-09-13 08:09:24 +02:00
Eberhard Beilharz
cbbe971cb3
chore(web): allow to run unit tests in vscode test explorer
#11746 removed the `ts-node` dependency. Unfortunately that broke running
TypeScript test files with Mocha in VSCode Test Explorer because it no
longer knows what to do with .ts files. This change adds the more modern
`tsx` package as developer dependency, which allows to use Test Explorer
again.

See https://stackoverflow.com/a/77609121.
2024-09-12 18:32:46 +02:00
Eberhard Beilharz
fc32f02dc9
Merge pull request #12400 from keymanapp/chore/web/testexplorer
chore(web): allow to run unit tests in vscode test explorer
2024-09-12 14:07:55 +07:00
Eberhard Beilharz
95f36acb68
chore(web): allow to run unit tests in vscode test explorer
#11746 removed the `ts-node` dependency. Unfortunately that broke running
TypeScript test files with Mocha in VSCode Test Explorer because it no
longer knows what to do with .ts files. This change adds the more modern
`tsx` package as developer dependency, which allows to use Test Explorer
again.

See https://stackoverflow.com/a/77609121.
2024-09-11 19:28:33 +02:00
Eberhard Beilharz
f52a1209c8
refactor(web): merge device-detect with web/src/engine/main
This change moves `web/src/engine/device-detect/` →
`web/src/engine/main/` and renames the `Device` class to `DeviceDetector`.

Fixes: #12388
2024-09-11 16:48:15 +02:00
Eberhard Beilharz
c3e587193e
refactor(web): move model/types to web/types
Part-of: #12133
2024-09-09 19:59:01 +02:00
Eberhard Beilharz
165829beb5
Merge branch 'epic/web-core' into chore/merge-master-into-web-core 2024-08-30 15:17:47 +07:00
Eberhard Beilharz
b1fb8122c2
refactor(web): move gesture-processor tests under web/src/test
`gesture-processor/src/test/auto/browser/web-test-runner.config.mjs`
run the tests on iOS and Android. However, if we enable these browsers
in `web/src/test/auto/dom/web-test-runner.config.mjs` we get failing
tests in osk, therefore these browsers are commented for now.
2024-08-26 15:29:22 +07:00
Eberhard Beilharz
0abc250af3
feat(web): POC of Core WASM integration into Keyman Web
- add temporary function to Core for this POC
- add new CoreProcessor to access Keyman Core WASM
- add unit tests for new core processor
- add code to KeymanEngine and InputProcessor to load the new CoreProcessor
- add web server to manual tests and new action `start` to build script

This change requires the manual tests to be loaded from a web server
instead of loaded as file, because otherwise the wasm code won't be
loaded.

Currently we always load CoreProcessor. This should be improved in a future
change to only load when it is actually needed.

Part-of: #11293
2024-08-20 22:45:39 +02:00
Eberhard Beilharz
170ac4bb6b
refactor(web): rename package-cache → keyboard-storage
Move `web/src/engine/package-cache/` →
`web/src/engine/keyboard-storage/`.

Fixes: #12132
2024-08-15 12:26:10 +02:00
Eberhard Beilharz
46ecfd4466
refactor(web): move remaining parts of keyboard-processor → keyboard
move parts of `common/web/keyboard-processor/` →
`web/src/engine/keyboard/`.

Fixes: #12110
2024-08-12 19:40:15 +02:00
Eberhard Beilharz
c09c895333
refactor(web): move parts of keyboard-processor → js-processor
Move parts of `common/web/keyboard-processor/` →
`web/src/engine/js-processor/`.

Note this temporarily disable tests for keyboard-processor which depend on
js-processor, until #12110 is fixed.

Fixes: #12067
2024-08-08 18:25:03 +02:00
Eberhard Beilharz
24159d680b
chore(web): move common/web/input-processor/ → web/src/engine/main/
Also:
- move `modelSpec.ts` and `PredictionContext.ts` →
  `web/src/engine/interfaces`
- move `correction.ts` and `correctionLayout.ts` to `web/src/engine/osk/`

Relates-to: #12035
Fixes: #12054
2024-08-01 20:13:21 +02:00
Eberhard Beilharz
ab5df20eef
chore(web): move web/src/engine/paths/ → web/src/engine/interfaces/
Fixes: #12035
2024-07-31 20:06:02 +02:00
Eberhard Beilharz
afe25eda24
change(web): remove support for es5
Fixes: #11878
2024-07-04 20:49:30 +02:00
Joshua Horton
ce49f12af9
Merge pull request #10432 from keymanapp/feat/web/package-kbd-renderer
feat(web): add bulk_render variant that loads and renders keyboards from local KMP
2024-06-12 12:56:40 +07:00
Joshua A. Horton
d07fa7e953 chore(common): eliminate ts-node ref from most subpackages 2024-06-10 10:07:58 +07:00
Joshua A. Horton
cce2f9a867 chore(web): Merge branch 'master' into feat/web/package-kbd-renderer 2024-06-06 08:51:08 +07:00
Joshua A. Horton
40733e4bec chore(web): fix web package.json's typescript entry
It should've been fixed previously, but maybe I messed things up with this while rebasing?
2024-05-31 15:25:48 +07:00
Joshua A. Horton
532bba95a8 chore(web): Merge branch 'master' into feat/web/package-kbd-renderer 2024-05-29 11:44:44 +07:00
Joshua A. Horton
1207c37898 chore(web): drops removed testing dependencies 2024-05-15 15:43:51 +07:00
Joshua A. Horton
55f1ea2b8d chore(web): converts web end-to-end style tests 2024-05-15 15:27:46 +07:00
Joshua A. Horton
ad8bdaa4c1 chore(web): updates eventemitter3 to v5, when it provides esmodule exports 2024-05-09 08:49:50 +07:00
Joshua A. Horton
01d0019d86 chore(web): removes package.json references to old @npm/types versions 2024-05-07 14:38:41 +07:00
Joshua A. Horton
398b9e0ae2 chore(common): drops package-specific 'chai', '@types/chai' versions
chore(web): missed leaving these out of the rebase
2024-05-07 14:35:09 +07:00
Eberhard Beilharz
0e1493906e
fix(web): export internals for unit tests as separate module
Addresses code review comments.
2024-04-24 10:47:46 +02:00
Marc Durdin
debb799caa fix(common): upgrade sentry-cli to 2.31.0
Fixes #11091.

Updating to latest sentry-cli on all projects, reviewed release notes
and there do not appear to be any breaking changes.

sentry-cli 2.19.4 had a bug with uploading wasm symbols:
https://github.com/getsentry/sentry-cli/issues/1682

It was fixed in 2.20.0:
https://github.com/getsentry/sentry-cli/releases/tag/2.20.0
2024-04-03 10:48:35 +07:00
Joshua A. Horton
21266dd109 feat(web): bulk_render variant - loads and renders keyboards from local KMP 2024-01-18 10:53:32 +07:00
Joshua A. Horton
dc7bfc1344 chore(web): Merge branch 'change/web/build-bundler-replacement' into feat/web/es6-target-artifact 2023-12-22 12:59:20 +07:00
Joshua A. Horton
90ecdf38f8 fix(web): adds Symbol, Map polyfill for main Web 2023-12-19 14:17:46 +07:00
Joshua A. Horton
f6e77a3736 feat(web): alternate artifact - es6-bundled Web
Does not affect the worker.

Bundling is in a temp-script and not properly connected to our actual build infrastructure.
2023-12-18 10:32:35 +07:00
Eberhard Beilharz
c9fac1b944
chore(web): Add unit tests for pageContextAttachment 2023-12-13 19:04:59 +01:00
Joshua A. Horton
3ce99b9c73 chore(web): cleanup re set_keyman_standard_build_path 2023-06-14 10:00:39 +07:00