Commit graph

1732 commits

Author SHA1 Message Date
Eberhard Beilharz
ff28ebc55a
refactor(web): move VariableStoreDictionary to variableStore.ts 2025-06-05 17:25:51 +02:00
Eberhard Beilharz
1b14f5c0bc
refactor(web): move RuleBehavior to engine/keyboard
This requires to move some other files around. Also move `finalize`
and `mergeInDefaults` methods to processor and rename them to
`finalizeProcessorAction` and `mergeInOtherProcessorAction` (decided
to directly use the term `ProcessorAction`, to which `RuleBehavior`
will be renamed to in a following PR).

Co-authored-by: Marc Durdin <marc@durdin.net>
2025-06-05 17:25:50 +02:00
Eberhard Beilharz
657585e605
docs(web): update function comment for preprocessKeyboardEvent 2025-06-05 17:25:50 +02:00
Eberhard Beilharz
cfacbb6cc5
refactor(web): rename OutputTarget interface → OutputTargetInterface 2025-06-05 13:22:32 +02: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
Eberhard Beilharz
623d9b1d95
Merge pull request #14034 from keymanapp/feat/web/cherry-pick/fixtests 2025-05-26 18:41:44 +02:00
Eberhard Beilharz
dba5108989
chore(web): mark some private methods as being private 2025-05-23 17:45:09 +02:00
Joshua Horton
245f2324df fix(web): update sentry-integration test page setup 2025-05-23 09:00:29 +07:00
Joshua Horton
2f3286b020 fix(web): updates android-harness test page setup to use module-bundled Sentry 2025-05-23 08:18:33 +07:00
Eberhard Beilharz
a3e919f4ac
chore(web): cleanup async methods in UI components
Cherry-pick of changes in #12291. Addresses code review comment.

Test-bot: skip
2025-05-22 19:15:54 +02:00
Eberhard Beilharz
229dd0d802
fix(web): fix loading of KMX keyboards in browser
Browsers don't support comparing arrays.

Test-bot: skip
2025-05-22 18:47:37 +02:00
Joshua Horton
bfb97ca0c6 maint(web): upgrade Sentry to 8.55.0
Fixes: KEYMAN-WEB-RX
(It was produced artificially after this PR's changes to validate them.)

Cross-reference with https://github.com/getsentry/sentry-javascript/blob/master/docs/migration/v7-to-v8.md in regard to minimum supported versions.

@keymanapp-test-bot skip
2025-05-22 14:02:16 +07:00
Eberhard Beilharz
8dff16ef0f
refactor(web): remove default from KeyEvent
Also make exports explicit in `index.ts`.
2025-05-20 15:13:54 +02:00
Joshua Horton
437b2019e0
Merge pull request #13959 from keymanapp/fix/web/default-layout-font-scaling
fix(web): empty layout fontSize property should default to 1em
2025-05-19 08:43:48 +07:00
Joshua Horton
f499e155c1
Merge pull request #13683 from keymanapp/fix/web/flick-cancel-during-reset
change(web): cancel flicks when both returning to and releasing at original tap location
2025-05-19 08:43:24 +07:00
Joshua Horton
7b1310a7d5
Merge pull request #13899 from keymanapp/maint/update-mocha
maint: update mocha
2025-05-19 08:42:53 +07:00
Joshua Horton
35be4c1fe4
Merge pull request #13895 from keymanapp/fix/web/inspectable-test-script-mode
fix(web): inspectable test-script mode should not be auto-enabled in local-env tests
2025-05-19 08:42:06 +07:00
Marc Durdin
3caf123604 chore(web): use const and let 2025-05-16 17:36:04 +02:00
Marc Durdin
9071190181 chore(web): Merge remote-tracking branch 'origin/epic/web-core' into chore/web/split-systemStores.ts 2025-05-16 17:25:31 +02:00
Joshua Horton
233f0c7345 change(web): apply suggestion from code review (strict '' check) 2025-05-16 13:58:50 +07:00
Joshua Horton
5a5cd20829 fix(web): empty layout fontSize property should default to 1em
Fixes: #13908
Fixes: KEYMAN-WEB-RK

Fun fact:  `Number('')` returns 0, not NaN!  I thought it would do the latter in #13838, which is what led to the issue this PR addresses.
2025-05-16 13:14:30 +07:00
Marc Durdin
9b17bc6452
Merge pull request #13953 from keymanapp/chore/merge-master-into-web-core
chore: merge master into web-core 🎼
2025-05-16 11:33:30 +07:00
Eberhard Beilharz
d052963d9c
Merge pull request #13928 from keymanapp/feat/web/kmxkbd
This PR adds the necessary code to dispose of the KMXKeyboards when we shut down KeymanEngine.
2025-05-15 18:19:15 +02:00
Marc Durdin
4309972a3a chore(web): address review comments 2025-05-15 17:48:55 +02:00
Marc Durdin
84f27a3cc2
Merge branch 'epic/web-core' into chore/merge-master-into-web-core 2025-05-15 22:44:28 +07:00
Marc Durdin
64d9128446 chore: Merge branch 'chore/merge-master-into-web-core' 2025-05-15 17:42:55 +02:00
Eberhard Beilharz
29b6eaf630
refactor(web): rename generic type variables
This change renames the generic type variables in `KeymanEngineBase`
to make it clearer that they are generic types rather than the actual
types.
2025-05-15 17:02:35 +02:00
Marc Durdin
d3d880b27b chore(web): split systemStores.ts
Splits systemStores.ts into stores.ts and platformSystemStore.ts under
engine/js-processor, and systemStores.ts under engine/keyboard, in
preparation for web-core use of system stores.
2025-05-15 17:02:31 +02:00
Eberhard Beilharz
7a162942aa
refactor(web): rename base KeymanEngine to KeymanEngineBase
(cherry picked from commit bd1c610d65)
2025-05-15 16:48:10 +02:00
Eberhard Beilharz
f80b3f9c13
refactor(web): rename HardKeyboard to HardKeyboardBase 2025-05-15 16:38:12 +02:00
Marc Durdin
d98814b9a8 chore(web): add accessor annotations for JSKeyboardProcessor
Preparation for epic/web-core, clarify which members of
`JSKeyboardProcessor` are private and which will need equivalent
implementations in `CoreKeyboardProcessor`.

Note: some of the publicly accessed members are not immediately obvious,
because they are accessed via interfaces declared in other modules (for
example `baseLayout` is referenced in `KeyboardState` type in
hardwareEventKeyboard.ts).
2025-05-15 16:00:25 +02:00
Eberhard Beilharz
2b2e8fc85b
feat(web): dispose KMXKeyboards on shutdown 2025-05-15 15:48:31 +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
Joshua Horton
a783fbc902 maint(web): also fixes worker-thread inspectable browser test call 2025-05-13 12:44:26 +07:00
Joshua Horton
14dd36de4d fix(web): inspectable test-script mode should not be auto-enabled in local-env tests
This is a followup to the recent #13827, which automatically adds --debug to local-environment builds.  For web/ test scripts involving browser-based scripts, that same flag had been used to enable an _inspectable_ test mode that doesn't auto-return, which doesn't match the semantics of --debug for build configurations.

To rectify this, those scripts now have their --debug option renamed to --inspect, allowing them to be optionally turned on, but not automatically enabled.

Test-bot: skip
2025-05-13 12:38:47 +07:00
Joshua Horton
e9274d9874 change(web): permit flick cancellation
Fixes: #10876

This change blocks key output while a flick is in a "reset" state.  If the flick is in a direction-locked state, key output still results - be it the base key (if not slid far enough) or a target flick key.
2025-05-13 08:41:53 +07:00
Joshua Horton
e8630c2bf2 Merge branch 'master' into fix/web/flick-cancel-during-reset 2025-05-13 08:27:26 +07:00
Eberhard Beilharz
d307051836
Merge pull request #13854 from keymanapp/maint/common/versionvars
Previously the builder scripts defined a readonly `VERSION` environment variable for the Keyman version. That caused problems when another (external) script tried to define a `VERSION` variable. We encountered this problem when trying to move the TC build steps of a configuration into a single script (#13399) when we tried to source `~/.nvm/nvm.sh`.

This change uses a Keyman specific prefix for the version variables and renames `VERSION` → `KEYMAN_VERSION` etc. as well as `TIER` → `KEYMAN_TIER`. Unfortunately these variables are used in a lot of places, so this turned out to be a bit of a yak shave.
2025-05-12 08:58:19 +02:00
Joshua Horton
5d00ccdd53
Merge pull request #13860 from keymanapp/fix/web/sustain-batched-layout-on-swap
fix(web): sustain active batched-layout mode when keyboard is switched
2025-05-08 15:49:15 +07:00
Joshua Horton
dd563e8a11 fix(web): sustain active batched-layout mode when keyboard is switched
Fixes: #13859
Fixes: KEYMAN-WEB-R4
2025-05-08 13:56:23 +07:00
Eberhard Beilharz
4d81589f48
maint(common): use unique names for Keyman version variables
Previously the builder scripts defined a readonly `VERSION` environment
variable for the Keyman version. That caused problems when another
(external) script tried to define a `VERSION` variable. We encountered
this problem when trying to move the TC build steps of a configuration
into a single script (#13399) when we tried to source `~/.nvm/nvm.sh`.

This change uses a Keyman specific prefix for the version variables and
renames `VERSION` → `KEYMAN_VERSION` etc. Unfortunately these variables
are used in a lot of places, so this turned out to be a bit of a yak
shave.

Test-bot: skip
2025-05-07 18:46:51 +02:00
Eberhard Beilharz
460de65f0d
maint(common): use same TC variable everywhere
Standardize on `TEAMCITY_GIT_PATH` environment variable to detect
if we're running on TeamCity.

Test-bot: skip
2025-05-06 17:42:25 +02:00
Joshua Horton
7d5a83633d fix(web): fix var declaration affected by linter strictness + length-style fix
Test-bot: skip
2025-05-06 11:29:31 +07:00
Joshua Horton
c3286ce4e1
Merge pull request #13774 from keymanapp/fix/web/layout-fontsize-robustness
fix(web): add robustness for bad touch-layout fontsize specs
2025-05-06 09:46:17 +07:00
Joshua Horton
9976af6f6c
docs(web): tweak comment per review
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2025-05-06 08:18:42 +07:00
Joshua Horton
76da8f4e2a
Merge pull request #13805 from keymanapp/fix/web/gesture-fixture-extraction
fix(web): fix extraction of gesture-engine fixture used in DOM-based unit tests
2025-05-06 08:17:03 +07:00
Joshua Horton
b02f1d18bc
Merge pull request #13800 from keymanapp/change/web/lint-kmwstring
change(web): lint kmwstring web-utility 🧶
2025-05-06 08:16:56 +07:00
Joshua Horton
d606563a8c
Merge pull request #13820 from keymanapp/maint/web/simplify-worker-main-test-script
maint(web): simplify worker-main test.sh
2025-05-06 08:16:47 +07:00
Joshua Horton
1438704ee0
Merge pull request #13819 from keymanapp/maint/web/use-builder_is_ci_build
chore(web): replace --ci flag with builder_is_ci_build
2025-05-06 08:16:37 +07:00
Joshua Horton
e382bf45ce
Merge pull request #13785 from keymanapp/change/web/drop-usvstring-alias
change(web): replace USVString with string in predictive-text engine
2025-05-06 08:16:28 +07:00