Commit graph

5416 commits

Author SHA1 Message Date
Eberhard Beilharz
98fa9e3003
fix(web): add unit tests for DeadkeyTracker and fix a few bugs
- initialize `Deadkey.matched` in c'tor
- fix `Deadkey.equal` method
- verify deadkey exists before removing it in `DeadkeyTracker.remove`
- add unit tests for DeadkeyTracker

Test-bot: skip
2025-11-12 19:39:18 +01:00
Eberhard Beilharz
9710f5b06a
chore(web): remove duplicate deadkeys.ts
The file sneaked in through a merge/rebase.

Build-bot: skip
Test-bot: skip
2025-11-12 19:37:57 +01:00
Marc Durdin
dbb5f43d29
refactor(web): text-store: rename getDeadkeyCaret to getCaret
Also renames internal `_dks` to `_deadkeys`.

Test-bot: skip
2025-11-12 19:35:21 +01:00
Marc Durdin
d07dbfefd6 chore(web): npm install and remove unused dep 2025-11-11 06:31:33 +01:00
Marc Durdin
a177526dbe
Merge branch 'epic/web-core' into maint/web/build-script-perf 2025-11-10 14:59:57 +01:00
Marc Durdin
cf1add0bb4
Merge pull request #15112 from keymanapp/fix/web/dont-reset-context-with-beep
fix(web): don't reset context cache with beep 🎼
2025-11-10 14:51:06 +01:00
Marc Durdin
a8339bd565
Merge branch 'epic/web-core' into maint/web/build-script-perf 2025-11-10 14:50:59 +01:00
Marc Durdin
bdca09bdeb
Merge pull request #15107 from keymanapp/refactor/web/sentry-manager-to-common-web
refactor(web): move sentry-manager and es-bundling to common 🎼
2025-11-10 14:49:58 +01:00
Marc Durdin
aa6b3c328e chore: Merge branch 'epic/web-core' into auto/A19S15-merge-master-into-web-core 2025-11-07 14:23:43 +01:00
Marc Durdin
db187e52ad fix(web): don't clear context when beep happens
After review with @ermshiperete, we decided to remove this. It is
unclear to me why we were ever clearing the context when a beep was
triggered by the keyboard. This is legacy from v2.0 of KeymanWeb, and I
suspect it's an edge case that no one has ever noticed, but I can't see
a reason to keep it.

Test-bot: skip
2025-11-07 09:58:46 +00:00
Marc Durdin
feff055d8a chore(web): Merge remote-tracking branch 'origin/epic/web-core' into refactor/web/downgrade-web-utils-from-package-to-module 2025-11-07 09:25:10 +00:00
Marc Durdin
8eb7e6b0d4 maint(web): cleanup web/**/build.sh for consistency and build performance
* Simplify the build dependency / child tree
* Split building and testing tooling so we don't rebuild components
* Fixup expected outputs to avoid repeated builds of components
* Remove unused dependency references
* Move test.sh targets into build.sh, so that testing doesn't lose
  dependency tracking and cause unnecessary rebuilds. (Note that I have
  not yet deleted test.sh.)
* Make predictive-text a direct child of engine, so that we don't build
  it twice (or even more times)

Test-bot: skip
2025-11-07 10:08:38 +01:00
Eberhard Beilharz
7a7dcf8878
chore(web): apply suggestions from code review
Theses changes come out of code review of #12291.

Follow-up-of: #12291
Test-bot: skip
2025-11-06 19:13:40 +01:00
Eberhard Beilharz
fb728d922d
refactor(web): remove duplicate element-text-stores folder
Test-bot: skip
2025-11-06 19:12:49 +01:00
Marc Durdin
86a903dcf5 refactor(web): move sentry-manager and es-bundling to common
sentry-manager is used by Keyman Engine for Android and Keyman Engine
for iOS, but not directly by KeymanWeb, nor does it have any
dependencies on /web. So it does not make sense to keep it under /web.

es-bundling is used by sentry-manager and potentially other /common/web
tools in the future, so moving it under /common/tools makes it more
consistent in the future.

This is part of simplifying the web source tree; these changes do not
make significant build performance differences at this time.

Test-bot: skip
2025-11-06 15:28:04 +01:00
Marc Durdin
5b37e843be
Merge pull request #15106 from keymanapp/refactor/web/defaultContextMgr
refactor(web): change default export of ContextManager 🎼
2025-11-06 14:15:24 +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
Eberhard Beilharz
5a324c2d42
refactor(web): change default export of ContextManager
This change replaces the default export of ContextManager with a regular
export.

Test-bot: skip
2025-11-06 08:10:51 +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 OutputTargetElementWrapper → AbstractElementTextStore 2025-11-04 17:14:37 +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
0fc7416b68
refactor(web): rename Mock → SyntheticTextStore 2025-11-04 17:14:37 +01:00
Eberhard Beilharz
c9fa02f21c
refactor(web): rename OutputTargetBase → TextStore 2025-11-04 16:58:08 +01:00
Eberhard Beilharz
dce103bed2
refactor(web): rename OutputTargetInterface → OutputTargetBase 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
Darcy Wong
238094c4e6 fix(web): Use build/test-resources/keyboards path for web test page 2025-10-31 11:25:32 +07:00
Darcy Wong
3872f57cbf fix(common): Update references to test9469 keyboard 2025-10-30 13:03:09 +07:00
Darcy Wong
66b5aeb614 chore(common): Move test9469 keyboard to common/test/keyboards/ 2025-10-30 11:56:07 +07:00
Darcy Wong
02619c2ef5 fix(web): Update manual test page to use common platformtest.js 2025-10-28 11:31:13 +07: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
Darcy Wong
00b6c71eb4 fix(web): Create test-resources/keyboards dir 2025-10-24 10:09:46 +07:00
Darcy Wong
616092e0f7 fix(web): Copy common keyboards to test-resources 2025-10-24 09:08:31 +07:00
Darcy Wong
4bff2c81d5 chore(web): Update web test page reference to chirality.js 2025-10-22 06:53:29 +07:00
Darcy Wong
d0ea16b975 chore(web): Move chirality.js to common/test/resources/keyboards/ 2025-10-21 13:49:37 +07: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