Commit graph

5665 commits

Author SHA1 Message Date
Marc Durdin
bd2a09a6c9 chore: Merge branch 'epic/web-core' into auto/A19S30-merge-master-into-web-core 2026-06-02 13:42:10 +02:00
Marc Durdin
dec447f210 chore(web): disable .kmx baseline tests 2026-06-02 10:10:03 +02:00
Marc Durdin
29618fb943 chore: remove kmx-specific keyboard tests
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-06-02 08:26:21 +02:00
Marc Durdin
bf1e272d17 chore: remove commented code
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-06-01 16:56:00 +02:00
Marc Durdin
ee8e3e8664 chore: remove keymancore.d.ts 2026-06-01 16:54:45 +02:00
Marc Durdin
439bdce6b5
Merge branch 'chore/web-core-preflight' into chore/web-core-strip-core 2026-06-02 00:52:28 +10:00
Marc Durdin
bb66bf42f0
Merge branch 'chore/web-core-preflight' into chore/web-core-strip-core 2026-06-02 00:48:52 +10:00
Marc Durdin
fc82f28b2d chore(web): web-core preflight - strip core references
In order to maintain roughly the current build artifact size, strip out
the unfinished core integration from what we merge with preflight.

Test-bot: skip
Build-bot: release:android,ios,developer,web
2026-06-01 14:44:45 +02:00
Marc Durdin
691ee626b5
Merge branch 'chore/web-core-preflight-replay-15888-kbdDetails' into chore/web-core-preflight-replay-15899-15894_test-index
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-06-01 16:11:20 +10:00
Marc Durdin
543dd5f3f7
Merge branch 'chore/web-core-preflight-replay-15887-renames' into chore/web-core-preflight-replay-15888-kbdDetails
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-06-01 16:11:13 +10:00
Marc Durdin
7d734fef6e
Merge branch 'chore/web-core-preflight-replay-15856-cleanup' into chore/web-core-preflight-replay-15887-renames
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-06-01 16:11:08 +10:00
Marc Durdin
0044a69fe5
Merge branch 'chore/web-core-preflight-replay-15858-squiggles' into chore/web-core-preflight-replay-15856-cleanup
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-06-01 16:11:00 +10:00
Marc Durdin
56bdc83863
Merge branch 'chore/web-core-preflight-replay-15949-15895_WindowsTc' into chore/web-core-preflight-replay-15858-squiggles
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-06-01 16:10:55 +10:00
Eberhard Beilharz
79fdadc87f chore(web): use .d.ts instead of .d.js for types
The convention is to use the `.d.ts` extension for typescript types, and
that's what is used elsewhere in the `package.json` file. This change
fixes the two instances that had `.d.js`.
2026-05-29 12:02:20 +02:00
Eberhard Beilharz
9423ee504f chore(web): cleanup web/src/app/browser/src/test-index.ts exports
The export of `test-index.ts` were intended to be used by tests only,
but over time they contained also exports that were consumed else where,
e.g. in UI classes like `kmwuibutton.ts`. This change removes unused
exports, moves test-only classes to a `unitTestEndPoints` container and
marks test-only types with `@internal`.

Build-bot: skip build:web
Test-bot: skip
2026-05-29 12:02:19 +02:00
Eberhard Beilharz
d2f9e39c3e refactor(web): use KeyboardDetails type 🧼
PR #15856 introduced the `KeyboardDetails` type but overlooked the use in
one file.

Follow-up-of: #15856
Follows: #15887
Build-bot: skip build:web
Test-bot: skip
2026-05-29 12:00:17 +02:00
Eberhard Beilharz
904fa97198 refactor(web): address code review comment
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-05-29 11:59:56 +02:00
Eberhard Beilharz
689f664ea0 refactor(web): rename variables and parameter names in KeymanEngine 🧼
Build-bot: skip build:web
Test-bot: skip
2026-05-29 11:59:55 +02:00
Eberhard Beilharz
b5be1d45f0 chore(web): address code review comments 2026-05-29 11:59:33 +02:00
Eberhard Beilharz
bc8a4b6f43 refactor(web): cleanup return types in KeymanEngine
This change explicitly specifies the return types and access for the
functions in KeymanEngine. Also introduce `KeyboardDetails` instead of
`ReturnType<>`.

Test-bot: skip
2026-05-29 11:59:32 +02:00
Eberhard Beilharz
0d266cf873 chore(web): fix red squiggles in .ts test files in vscode
VSCode shows red squiggles under things like `describe` or `it` in
.ts test files for web. This change adds the types to the `tsconfig.json`
file which fixes this problem.

Build-bot: skip build:web
Test-bot: skip
2026-05-29 11:59:04 +02:00
Eberhard Beilharz
6af638b9a8 maint(web): fix starting local dev server for e2e tests
Starting the local dev server before running the e2e tests with
`web/build.sh start` didn't work on Windows. This change now directly
calls `node` to start the server which seems to work cross-platform.

Fixes: #15895
Build-bot: skip build:web
Test-bot: skip
2026-05-29 11:57:28 +02:00
Eberhard Beilharz
81bae574b9 maint(web): output name of TC reporter
This change outputs the name of the TC reporter used for a test. This
will help in troubleshooting.

Build-bot: skip build:web
Test-bot: skip
2026-05-29 11:57:27 +02:00
Marc Durdin
9f75726344 chore(web): Merge branch 'master' into chore/web-core-preflight 2026-05-28 13:47:36 +02:00
Eberhard Beilharz
d3269fa247
Merge pull request #16021 from keymanapp/refactor/web/docs
docs(web): reformat and small fixes
2026-05-28 10:31:54 +02:00
Eberhard Beilharz
f61ad57544
refactor(web): don't wrap in the middle of links
Addresses code review comment.
2026-05-28 10:28:40 +02:00
Eberhard Beilharz
78ea935fe5
docs(web): reformat and small fixes
- rewrap lines
- change http:// to https://

Build-bot: skip
Test-bot: skip
2026-05-27 19:55:36 +02:00
Eberhard Beilharz
748ad4aa01
chore(web): add filename to link text of manual web tests
This change appends the filename to the description of the tests on
the index page of the manual web tests. This makes it easier to find
the test on the rendered index page when having the directory name
of the test available.

Build-bot: skip
Test-bot: skip
2026-05-27 19:34:09 +02:00
Marc Durdin
6a98a39b8a
Merge branch 'master' into chore/web-core-preflight 2026-05-27 22:37:12 +10:00
Eberhard Beilharz
3c11eae964
chore(web): remove obsolete file
This change removes a file that is no longer needed. The link is
redirected to keyman.com, so it's kind of pointless to keep it around.

Build-bot: skip
Test-bot: skip
2026-05-27 11:59:43 +02:00
Eberhard Beilharz
e593c458b0
maint(web): fix starting local dev server for e2e tests
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Starting the local dev server before running the e2e tests with
`web/build.sh start` didn't work on Windows. This change now directly
calls `node` to start the server which seems to work cross-platform.

Fixes: #15895
Build-bot: skip build:web
Test-bot: skip
2026-05-13 11:44:32 +02:00
Eberhard Beilharz
3a25613114
maint(web): output name of TC reporter
This change outputs the name of the TC reporter used for a test. This
will help in troubleshooting.

Build-bot: skip build:web
Test-bot: skip
2026-05-13 11:28:37 +02:00
Eberhard Beilharz
d2fb11af90
Merge pull request #15898 from keymanapp/refactor/web/jstests
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
refactor(web): move context tests to typescript
2026-05-04 12:09:02 +02:00
Eberhard Beilharz
1b8f37ef3f
Merge pull request #15899 from keymanapp/chore/web/15894_test-index
chore(web): cleanup `web/src/app/browser/src/test-index.ts` exports

The exports of `test-index.ts` were intended to be used by tests only, but over time they contained also exports that were consumed elsewhere, e.g. in UI classes like `kmwuibutton.ts`. This change removes unused exports, moves test-only classes to a `unitTestEndPoints` container and marks test-only types with `@internal`.

Fixes: #15894
2026-05-04 12:07:32 +02:00
Eberhard Beilharz
90caa120f8
Merge pull request #15893 from keymanapp/refactor/web/kbdProcessor
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
refactor(web): move common code to abstract `KeyboardProcessor` base class

This change moves code that was implemented in both `JSKeyboardProcessor` and `CoreKeyboardProcessor` to the `AbstractKeyboardProcessor`. This got renamed from `KeyboardProcessor` and is now a generic abstract class.

Also removed some of the band-aids in `CoreKeyboardInterface` and `JSKeyboardInterface` that I put in before: Typescript allows implementations to have a slightly different method signature and still matches the interface as long as the used types are derived from the ones specified in the interface.

Follows: #15870
2026-04-30 19:07:23 +02:00
Eberhard Beilharz
925e68c182
refactor(web): move context tests to typescript
Build-bot: skip build:web
Test-bot: skip
2026-04-30 18:34:20 +02:00
Eberhard Beilharz
9c364d56e4
chore(web): use .d.ts instead of .d.js for types
The convention is to use the `.d.ts` extension for typescript types, and
that's what is used elsewhere in the `package.json` file. This change
fixes the two instances that had `.d.js`.
2026-04-30 17:58:19 +02:00
Eberhard Beilharz
1bc83f9fcf
chore(web): cleanup web/src/app/browser/src/test-index.ts exports
The export of `test-index.ts` were intended to be used by tests only,
but over time they contained also exports that were consumed else where,
e.g. in UI classes like `kmwuibutton.ts`. This change removes unused
exports, moves test-only classes to a `unitTestEndPoints` container and
marks test-only types with `@internal`.

Build-bot: skip build:web
Test-bot: skip
2026-04-30 17:46:55 +02:00
Eberhard Beilharz
7c460e9b34
Merge pull request #15890 from keymanapp/feat/web/getKbdDetailsType
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
feat(web): clarify return type of `KeymanEngine.getKeyboardDetails` 🧼 🎼

`getKeyboardDetails` can return `null` if `stub` is falsy. This PR changes the return type accordingly to improve type safety.

Follows: #15889
2026-04-28 20:11:26 +02:00
Eberhard Beilharz
16dcfaa0cc
chore(web): Merge branch 'epic/web-core' into feat/web/keyboardDetails 2026-04-28 19:03:16 +02:00
Eberhard Beilharz
10fcfe470a
refactor(web): move common code to abstract KeyboardProcessor base class
This change moves code that was implemented in both `JSKeyboardProcessor`
and `CoreKeyboardProcessor` to the `AbstractKeyboardProcessor`. This got
renamed from `KeyboardProcessor` and is now a generic abstract class.

Also removed some of the band-aids in `CoreKeyboardInterface` and
`JSKeyboardInterface` that I put in before: Typescript allows
implementations to have a slightly different method signature and still
matches the interface as long as the used types are derived from the ones
specified in the interface.

Follows: #15870
Build-bot: skip build:web
Test-bot: skip
2026-04-28 18:59:42 +02:00
Eberhard Beilharz
8c9628791a
feat(web): ignore keyboards without details
This change will ignore keyboards where `getKeyboardDetails` returns
`null` and will not push them to the `detailsForAllKeyboards` array.

Addresses a code review comment.
2026-04-28 18:26:13 +02:00
Eberhard Beilharz
602a740cd9
Merge pull request #15888 from keymanapp/refactor/web/kbdDetails
refactor(web): use `KeyboardDetails` type 🧼 🎼

PR #15856 introduced the `KeyboardDetails` type but overlooked the use in one file.

Follow-up-of: #15856
Follows: #15887
2026-04-28 18:18:46 +02:00
Eberhard Beilharz
f16d27ca4c
Merge pull request #15887 from keymanapp/refactor/web/renames
refactor(web): rename variables and parameter names in KeymanEngine 🧼 🎼
2026-04-28 17:59:38 +02:00
Eberhard Beilharz
09d2816085
refactor(web): address code review comment
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-04-28 16:52:22 +02:00
Eberhard Beilharz
85e3bf1e39
Merge pull request #15870 from keymanapp/feat/web/loadSerializedOpts
feat(web): get list of store names from stores defined in core

This implements `CoreKeyboardInterface.loadSerializedOptions` by getting the list of all variable store names from Core and then trying to load these.

Also change `VariableStoreSerializer.loadStore` signature so that it can return `undefined`. This allows to return only those options from `loadSerializedOptions` that have a non-default value, i.e. were serialized before.

Follow-up-of: #15470
2026-04-28 16:39:56 +02:00
Eberhard Beilharz
51283454d8
feat(web): clarify return type of KeymanEngine.getKeyboardDetails 🧼
`getKeyboardDetails` can return `null` if `stub` is falsy. This PR changes
the return type accordingly to improve type safety.

Follows: #15889
Build-bot: skip build:web
Test-bot: skip
2026-04-27 17:14:03 +02:00
Eberhard Beilharz
18408185d6
feat(web): implement getting keyboard details for KMX keyboards 🧼
Turns out that we can use `KeyboardStub` for both JS and KMX keyboards.

Follows: #15888
Build-bot: skip build:web
Test-bot: skip
2026-04-27 16:54:10 +02:00
Eberhard Beilharz
269ba67e89
refactor(web): use KeyboardDetails type 🧼
PR #15856 introduced the `KeyboardDetails` type but overlooked the use in
one file.

Follow-up-of: #15856
Follows: #15887
Build-bot: skip build:web
Test-bot: skip
2026-04-27 16:29:42 +02:00
Eberhard Beilharz
3b84867961
refactor(web): rename variables and parameter names in KeymanEngine 🧼
Build-bot: skip build:web
Test-bot: skip
2026-04-27 16:27:15 +02:00