Commit graph

5391 commits

Author SHA1 Message Date
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
1f8f5d8796
Merge branch 'refactor/web/merge-engine-modules' into refactor/web/downgrade-web-utils-from-package-to-module 2025-11-06 08:08:38 +01:00
Eberhard Beilharz
e519d12032
Merge pull request #15096 from keymanapp/refactor/web/textStoreInterface
refactor(web): extract minimal TextStore interface that LanguageProcessor can use 🎼
2025-11-06 08:07:29 +01:00
Marc Durdin
6cf378daf8 chore(web): address review comments 2025-11-06 07:51:43 +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
Eberhard Beilharz
a9f0e2d212
refactor(web): address code review comments
- rename TextStoreTranscriptionInterface → TextStoreLanguageProcessorInterface
- also fixup references to TextStore in languageProcessor.interface.ts
2025-11-05 16:54:16 +01:00
Eberhard Beilharz
6c755e7c86
refactor(web): address code review comments 2025-11-05 15:58:59 +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
533473c199
refactor(web): extract minimal TextStore interface that LanguageProcessor can use 2025-11-04 18:22:58 +01:00
Eberhard Beilharz
b169aafa4f
refactor(web): cleanup exports of keyboards module
- explicitly list exports instead of using `*`
- remove `default` exports
2025-11-04 17:14:38 +01:00
Eberhard Beilharz
96275fff2c
refactor(web): cleanup 2025-11-04 17:14:38 +01:00
Eberhard Beilharz
07aa9e7af8
refactor(web): rename eventOutputTarget and outputTargetForElement
- Rename `eventOutputTarget` → `textStoreForEvent`
- Rename `outputTargetForElement` → `textStoreForElement`
2025-11-04 17:14:38 +01:00
Eberhard Beilharz
2997650f5a
refactor(web): remove DOMOutputTarget aliasing 2025-11-04 17:14:38 +01:00
Eberhard Beilharz
a82ebe8f97
refactor(web): rename file outputTargetElementWrapper.ts
Rename outputTargetElementWrapper.ts → abstractElementTextStore.ts.
2025-11-04 17:14:38 +01:00
Eberhard Beilharz
f096be9848
refactor(web): rename element wrapper classes → *ElementTextStore 2025-11-04 17:14:38 +01:00
Eberhard Beilharz
e4d6ae9123
refactor(web): rename OutputTargetElementWrapperAbstractElementTextStore 2025-11-04 17:14:37 +01:00
Eberhard Beilharz
22a93cd3f6
refactor(web): rename directory element-wrapperselement-text-stores
Also rename module from element-wrappers → element-text-stores.
2025-11-04 17:14:37 +01:00
Eberhard Beilharz
0fc7416b68
refactor(web): rename MockSyntheticTextStore 2025-11-04 17:14:37 +01:00
Eberhard Beilharz
c9fa02f21c
refactor(web): rename OutputTargetBaseTextStore 2025-11-04 16:58:08 +01:00
Eberhard Beilharz
dce103bed2
refactor(web): rename OutputTargetInterfaceOutputTargetBase 2025-11-04 16:57:33 +01:00
Eberhard Beilharz
71ed528fc8
refactor(web): move files from js-processor to keyboard
This change moves
- deadkeys.ts
- mock.ts
- outputTargetBase.ts
- stringDivergence.ts

OutputTarget is the same regardless of whether it's a JS or KMX keyboard.
2025-11-04 16:57:32 +01:00
Eberhard Beilharz
2dc87f2e37
refactor(web): move isEmptyTransform to @keymanapp/web-utils 2025-11-04 16:57:32 +01:00
Keyman Server
744bd8fecc
Merge branch 'epic/web-core' into chore/A19S14-merge-master-into-web-core 2025-10-24 11:14:51 +02:00
Marc Durdin
d34f238eeb chore(web): update helpURL documentation and float ui link
Make the float UI KeymanWeb link point to the home for KeymanWeb, and
https rather than http, and update the helpURL documentation to match
the current endpoint.

Test-bot: skip
Build-bot: skip
2025-10-15 07:57:08 +02:00
Keyman Server
fe31e53655
Merge branch 'epic/web-core' into chore/A19S13-merge-master-into-web-core 2025-10-10 05:05:38 +02:00
Eberhard Beilharz
229bdf8270
maint(resources): nest unit tests under parent block
This adds a modified `mocha-teamcity-reporter` that allows to nest the
unit tests under the parent block.

Fixes: #14839
Test-bot: skip
2025-10-06 16:09:47 +02:00
Eberhard Beilharz
34c43b1e15
refactor(web): cleanup in test scripts
Also use common function for running web types tests.

Test-bot: skip
2025-09-30 17:40:15 +02:00
Eberhard Beilharz
3b9605b7e9 chore(web): disable DOM tests for webkit on Windows
Webkit on Windows doesn't support WASM, so several tests fail. This change
disables the webkit tests when running on Windows.

Fixes: #14859
Test-bot: skip
2025-09-29 19:04:43 +02:00
Eberhard Beilharz
aa875feafe
chore(web): use renamed type 2025-09-12 17:31:21 +02:00
Keyman Server
fb969f44a4
Merge branch 'epic/web-core' into chore/A19S11-merge-master-into-web-core 2025-09-12 00:26:19 -07:00
Eberhard Beilharz
e92a82db62
Merge pull request #14684 from keymanapp/fix/web/14108_NaN
PR #13860 fixed a similar error by adding a check for NaN. However, it missed doing it for `layoutWidth` and only changed `layoutHeight`. 

This PR adds a similar check to `layoutWidth` and will thus fix the error we're still seeing in Sentry.

Also add unit tests for both methods.

Fixes: #14108
Fixes: [KEYMAN-WEB-RA](https://keyman.sentry.io/issues/6579536471/?referrer=github_integration)
2025-09-08 09:06:49 +02:00
Eberhard Beilharz
8e65d13559
Merge pull request #14646 from keymanapp/refactor/common/13205_UnifyWhatsNew
Standardize on `whatsnew.md`.

Fixes: #13205
Related: https://github.com/keymanapp/help.keyman.com/pull/2234
2025-09-05 09:44:02 +02:00
Eberhard Beilharz
f464008326
fix(web): add check to internalHeight
The same error could potentially happen in `internalHeight`, so we
add the check for NaN there as well. Addresses code review comments.
2025-09-05 09:35:50 +02:00
Eberhard Beilharz
74ef39726b
fix(web): fix error trying to calculate style scaling effects
PR #13860 fixed a similar error by adding a check for NaN. However, it
missed doing it for `layoutWidth` and only changed `layoutHeight`. This
PR adds a similar check to `layoutWidth` and will thus fix the error
we're still seeing in Sentry.

Also add unit tests for both methods.

User Testing
============

TEST_INUKTITUT_KEYBOARD: Using Keyman for Android, install the
`inuktitut_pirurvik` and verify that no error notifications appear.

Fixes: #14108
Fixes: [KEYMAN-WEB-RA](https://keyman.sentry.io/issues/6579536471/?referrer=github_integration)
2025-09-04 17:28:15 +02:00
Joshua Horton
191db9cba9
Merge pull request #14618 from keymanapp/refactor/web/simplify-calculation-inputs
refactor(web): simplify edit-distance calculation-object inputs
2025-09-03 22:11:00 +07:00
Joshua Horton
770ac2a13f
Merge pull request #14592 from keymanapp/feat/web/search-subset-batching
feat(web): batch correction-search paths by related subsets
2025-09-03 22:10:46 +07:00
Joshua Horton
6969206701
Merge pull request #14581 from keymanapp/feat/web/transform-cataloging
feat(web): adds transform cataloging methods to predictive-text worker
2025-09-03 22:10:38 +07:00
Eberhard Beilharz
3e3cccc97d
Apply suggestions from code review
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
2025-09-03 08:42:39 +02:00
Eberhard Beilharz
f166f11d14
docs(common): update docs Keyman Desktop → Keyman for Windows
Also change path to engine help pages. This requires a corresponding
change in help.keyman.com.

Test-bot: skip
2025-09-02 14:29:53 +02:00
Eberhard Beilharz
50950c6737
docs(web): Improve empty What's New page for Web
Build-bot: skip
Test-bot: skip
2025-09-01 17:39:21 +02:00
Eberhard Beilharz
68c9a77884
refactor(common): unify name of What's New file
Standardize on `whatsnew.md`.

Build-bot: skip
Test-bot: skip
2025-08-29 12:54:25 +02:00
Joshua Horton
6d991eeecc
fix(web): Apply unit-test suggestions from code review
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2025-08-28 22:46:58 +07:00
Joshua Horton
33ae31f3a4 fix(web): prevent undefined traversal entry 2025-08-28 09:32:48 -05:00
Joshua Horton
1942309356 feat(web): add unit test for empty-char inputs, matches 2025-08-28 09:15:47 -05:00
Joshua Horton
d9aebf0213 Merge branch 'feat/web/search-subset-batching' into refactor/web/simplify-calculation-inputs 2025-08-28 09:10:11 -05:00
Joshua Horton
26c787d24d fix(web): improve unit-test setup assertions 2025-08-28 09:07:58 -05:00
Joshua Horton
820c082839
docs(web): Apply comment-oriented suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-08-28 21:03:52 +07:00
Joshua Horton
9f54ab1b25
change(web): add missing semi-colon
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-08-28 20:57:39 +07:00
Marc Durdin
f7bc0e13f7 chore(web): update build to use new builder function names 2025-08-28 15:37:36 +02:00