Commit graph

3571 commits

Author SHA1 Message Date
Marc Durdin
7b6447c3e4 fix(developer): improve validation of minDeviceWidth to match spec
* Hint on multiple missing minDeviceWidth
* Disallow blank or whitespace minDeviceWidth value
* Additional tests for minDeviceWidth

Fixes: #16457
Test-bot: skip
2026-09-02 09:52:51 +02:00
Marc Durdin
57f0dc4597 fix(developer): validate id and modifiers attributes in Layr compiler
Per the spec, the `id` attribute is required for touch layers, and
`modifiers` attribute is required for hardware layers. There is
ambiguity in the spec at present as to whether they should be allowed
for the alternative type.

* Validate that the attributes are present where required.
* Tighten validation of `modifiers` attribute - it cannot be empty or
  missing for hardware; "" != "none".
* Hint if the attribute is present when it probably shouldn't be (to be
  potentially raised to warning or error after spec clarified).
* Fixup all keyboard3 xml files to conform to spec and eliminate hints.
* Add unit tests.
* Removed threshold warning for coverage as kmc-ldml is already > 90%.

Fixes: #12423
2026-08-28 13:21:12 +02:00
Marc Durdin
369911397a fix(developer): validate the number of hardware layers only in Layr compiler
`KeysCompiler` runs before `LayrCompiler` so this verification needs to
defer rather than throw. We can assume that the `LayrCompiler` will
catch it.

Fixes: KEYMAN-DEVELOPER-3XD
Fixes: #16454
Test-bot: skip
2026-08-28 11:49:59 +02:00
Marc Durdin
cf22d460ff feat(developer): support output folder and --continue-on-error
Add support for specifying an output folder instead of filename for the
`--out-file` parameter of kmc. This allows for batch builds, which can
be much faster than invoking kmc for each file separately.

Alongside that, add a `--continue-on-error` parameter that allows for
batch builds to continue even if a single file fails to build. (Note
that if a fatal error is encountered, kmc aborts with exit code 70).
2026-08-28 10:29:28 +02:00
Marc Durdin
e18a76f289
Merge pull request #16420 from keymanapp/feat/developer/16407/kmc-convert-follow-up-1
feat(developer): kmc convert follow-up tasks
2026-08-21 22:08:44 +07:00
Sabine
0f35f1fc79 feat(developer): changes in kmc convert --help; import of ConverterArtifacts, ConverterToKmnArtifacts, ConverterResult, and ConverterToKmnResult 2026-08-21 16:16:35 +02:00
Marc Durdin
ee3ed010ef fix(developer): clean kmc-convert build.sh with new publish patterns
Test-bot: skip
2026-08-20 21:36:33 +02:00
Marc Durdin
ec64218e53
Merge pull request #16302 from keymanapp/dependabot/npm_and_yarn/developer/src/server/src/win32/trayicon/addon-src/ip-address-10.4.0
chore(deps): bump ip-address from 10.2.0 to 10.5.0 in /developer/src/server/src/win32/trayicon/addon-src
2026-08-20 21:44:51 +07:00
Marc Durdin
058a68fc88
Merge pull request #16104 from keymanapp/dependabot/npm_and_yarn/ws-8.21.0
chore(deps): bump ws from 8.20.1 to 8.21.0
2026-08-20 21:41:24 +07:00
Marc Durdin
e5ad777534
Merge pull request #16347 from keymanapp/fix/developer/16214-tighten-touch-layout-file-validity
fix(developer): tighten touch layout file structural validity checks
2026-08-20 21:27:04 +07:00
Marc Durdin
430b6bdde3
Merge pull request #16109 from keymanapp/dependabot/npm_and_yarn/multer-2.2.0
chore(deps): bump multer from 2.1.1 to 2.2.0
2026-08-20 21:23:29 +07:00
Marc Durdin
e48bb4be14 chore(developer): add missing dev deps for server 2026-08-20 16:18:51 +02:00
Marc Durdin
3a4e72bc66 refactor(developer): rename validate-layout-file.ts
Rename `ValidateLayoutFile()` to `CompileLayoutFile()` to better reflect
the transform steps it performs, add documentation, and address review
comments.

Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-08-20 15:47:08 +02:00
Marc Durdin
51368402c4
Merge branch 'master' into epic/kmc-convert
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-08-18 20:26:07 +07:00
SabineSIL
882ede0c54
feat(developer): kmc-convert: new conversion .keylayout->kmn 😎 (#12564)
kmc-convert provides tooling to convert between various common keyboard
description file formats. Each conversion will be implemented in its
single, separate module (and each module will done in its own PR)

This PR will address the conversion **keylayout → kmn**

Co-authored-by: Marc Durdin <marc@durdin.net>
2026-08-18 15:16:02 +02:00
Keyman Server
7e8e53dbbc
Merge branch 'epic/kmc-convert' into auto/A19S35-merge-base-into-kmc-convert 2026-08-14 16:19:03 +02:00
Marc Durdin
3e7630e37a fix(developer): mark touch layout file as modified after applying template
Fixes: #16128
Test-bot: skip
2026-08-14 14:29:01 +02:00
SabineSIL
1f298027fd
Merge branch 'master' into chore/developer/scatteredCode/cleanup_VKeys 2026-08-13 11:26:08 +02:00
Sabine
7517531a3a chore(common): remove stray keylayout file 2026-08-13 11:22:52 +02:00
Marc Durdin
0624bc900a
Merge pull request #16095 from keymanapp/dependabot/npm_and_yarn/esbuild-0.28.1
chore(deps-dev): bump esbuild from 0.25.0 to 0.28.1
2026-08-13 08:21:33 +02:00
Sabine
a621106ef3 chore(common): remove namespace km::vkey 2026-08-12 10:04:20 +02:00
Marc Durdin
cd674fd7a0 fix(developer): tighten touch layout file structural validity checks
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Fixes: #16214
Fixes: KEYMAN-DEVELOPER-39Q
Test-bot: skip
2026-08-12 07:27:02 +02:00
SabineSIL
10aceeacb3
Merge branch 'master' into chore/developer/scatteredCode/cleanup_VKeys 2026-08-11 10:45:18 +02:00
Sabine
a2bf976e5e chore(common): remove commented old #defines; in some files remove paths for #include km_vkey 2026-08-11 09:46:49 +02:00
Keyman Server
8484cd326e
Merge branch 'epic/kmc-convert' into auto/A19S34-merge-base-into-kmc-convert 2026-08-10 09:54:22 +02:00
dependabot[bot]
92bf799430
chore(deps): bump ip-address
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Bumps [ip-address](https://github.com/beaugunderson/ip-address) from 10.2.0 to 10.5.0.
- [Release notes](https://github.com/beaugunderson/ip-address/releases)
- [Commits](https://github.com/beaugunderson/ip-address/compare/v10.2.0...v10.5.0)

---
updated-dependencies:
- dependency-name: ip-address
  dependency-version: 10.4.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-10 06:50:21 +00:00
Marc Durdin
7d30136193
Merge pull request #16295 from keymanapp/dependabot/npm_and_yarn/developer/src/server/src/win32/trayicon/addon-src/brace-expansion-5.0.9
chore(deps): bump brace-expansion from 5.0.6 to 5.0.9 in /developer/src/server/src/win32/trayicon/addon-src
2026-08-10 08:48:00 +02:00
Sabine
0b7af5b771 chore(common): include km_vkey.h 2026-08-07 16:00:19 +02:00
Sabine
e69204c6a2 chore(common): use shorter input paths 2026-08-07 13:38:38 +02:00
Sabine
22a04c14fd Merge branch 'chore/developer/scatteredCode/cleanup_VKeys' of https://github.com/keymanapp/keyman into chore/developer/scatteredCode/cleanup_VKeys 2026-08-07 12:55:24 +02:00
Sabine
dde35c87cc chore(common): undo last changes 2026-08-07 12:55:06 +02:00
SabineSIL
540f8c5db8
Merge branch 'master' into chore/developer/scatteredCode/cleanup_VKeys 2026-08-07 12:01:43 +02:00
Sabine
9854206f6a chore(common): use shorter input paths for km_vkey.h and #include also in windows/src/engine/... 2026-08-07 11:59:42 +02:00
dependabot[bot]
eeaf8de59d
chore(deps): bump brace-expansion
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 5.0.6 to 5.0.9.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v5.0.6...v5.0.9)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 5.0.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-01 02:09:02 +00:00
dependabot[bot]
c15dd9a788
chore(deps): bump tar
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.11 to 7.5.22.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.11...v7.5.22)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.22
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-26 16:08:48 +00:00
Keyman Server
07d2487dde
Merge branch 'epic/kmc-convert' into auto/A19S33-merge-master-into-kmc-convert 2026-07-20 07:26:33 +02:00
Marc Durdin
528876b42f
Merge pull request #16135 from keymanapp/chore/developer/14838-consolidate-api-extractor
chore(developer): consolidate api-extractor usage in Developer
2026-07-09 18:50:27 +10:00
Keyman Server
52298758cb
Merge branch 'epic/kmc-convert' into auto/A19S32-merge-base-into-kmc-convert 2026-07-04 13:19:46 +02:00
Sabine
953f687c2a chore(common): comment for VK_DECIMAL, remove VK__MAX; use windows.h for VK_ESCAPE and VK_BACK 2026-07-02 15:40:24 +02:00
Sabine
c38fa4e942 chore(common): include km_vkey.h from common 2026-07-02 14:18:47 +02:00
Sabine
1d616545de chore(common): include kmx_processevent.h from core 2026-07-02 12:55:53 +02:00
Sabine
a8f509d4d7 chore(common): include kmx_processevent.h 2026-07-02 12:33:03 +02:00
Sabine
b780ecc730 chore(common): edit value of VK_DECIMAL 2026-07-02 12:07:46 +02:00
Sabine
68fa9b97fb chore(common): rename namespace km_vk to vkey and use under km (km::vkey) 2026-07-02 11:37:46 +02:00
Sabine
62d7f79925 chore(common): rename and use keyman_vkey.h-> km_vkey.h 2026-07-02 11:19:46 +02:00
Sabine
a19e452b59 chore(common): change use of #includes 2026-07-02 10:22:41 +02:00
Sabine
490eb93eaf chore(common): change path for #include /keymanversion.h 2026-07-02 10:00:34 +02:00
SabineSIL
9ca40faac7
Merge branch 'master' into chore/developer/scatteredCode/cleanup_VKeys
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-07-02 09:37:43 +02:00
Sabine
0e5c94c7e5 chore(common): add JPathOrMatcher for use of fast-xml-parser 5.8 2026-07-02 09:07:49 +02:00
Marc Durdin
cda7dc6d24 chore: remove deprecated "X-UA-Compatible" and "apple-mobile-web-app-capable" metas
For Keyman Developer Server, add app.webmanifest so that it can be saved
to the home screen; other pages should not require this.

Fixes: #16172
Test-bot: skip
2026-07-01 10:27:22 +02:00