Commit graph

4531 commits

Author SHA1 Message Date
dependabot[bot]
cb0c368478
chore(deps): bump qs and express
Bumps [qs](https://github.com/ljharb/qs) to 6.16.0 and updates ancestor dependency [express](https://github.com/expressjs/express). These dependencies need to be updated together.


Updates `qs` from 6.15.2 to 6.16.0
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.15.2...v6.16.0)

Updates `express` from 4.22.2 to 5.2.1
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/v4.22.2...v5.2.1)

---
updated-dependencies:
- dependency-name: express
  dependency-version: 5.2.1
  dependency-type: direct:production
- dependency-name: qs
  dependency-version: 6.16.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-07 09:20:28 +00:00
Marc Durdin
eab16d274a
Merge pull request #16502 from keymanapp/chore/developer/improve-kmc-ldml-test-messages
chore(developer): improve kmc-ldml test messages
2026-09-03 21:48:19 +07:00
Marc Durdin
b6f528b4ce
Merge pull request #16501 from keymanapp/fix/developer/16457-ldml-validate-mindevicewidth
fix(developer): improve validation of minDeviceWidth to match spec
2026-09-03 21:48:03 +07:00
Marc Durdin
8ba16403be
Merge pull request #16516 from keymanapp/fix/developer/11514-touch-layout-undo-save
fix(developer): ensure JSON regenerated after undo in touch layout editor
2026-09-03 21:45:13 +07:00
Marc Durdin
1795f9b35b
Merge pull request #16509 from keymanapp/fix/developer/11209-remember-presentation-on-platform-switch
fix(developer): remember presentation and layer when switching platforms in touch layout editor
2026-09-03 21:45:05 +07:00
Marc Durdin
52e0d2a06f
Merge pull request #16506 from keymanapp/fix/developer/8227-hide-keyboard-uninstall-confirmation
fix(developer): hide keyboard uninstall confirmation
2026-09-03 21:44:50 +07:00
Marc Durdin
9b7c423872
Merge pull request #16505 from keymanapp/docs/developer/16496-rename-test-fixture
docs(developer): add comment to test fixtures to clarify expectations
2026-09-03 21:44:41 +07:00
Marc Durdin
15e121ba0a fix(developer): ensure JSON regenerated after undo in touch layout editor
Fixes: #11514
Test-bot: skip
2026-09-03 07:36:59 +02:00
SabineSIL
8d6162358a
feat(developer): remove TODO-kmc-convert 😎 (#16460)
removes  comment  
`TODO-KMC-CONVERT: Support <action> sub-element 'anonymous actions' in
the future`
from keylayout-xml.ts since this concept is not used in kmc-convert at
present and probably not planned to be worked on in near future

Test-bot: skip
2026-09-02 12:17:46 +02:00
Marc Durdin
cdd0f7370c fix(developer): remember layer when switching platforms in touch layout editor
Remembers the last selected layer for each platform.

Fixes: #11209
2026-09-02 12:10:41 +02:00
Marc Durdin
9ae2a088a6 fix(developer): remember presentation when switching platforms in touch layout editor
Fixes: #11209
2026-09-02 12:03:00 +02:00
Marc Durdin
a94fec4c91 fix(developer): hide keyboard uninstall confirmation
This side-steps #8227 by removing an unnecessary confirmation dialog,
without needing to change exit codes from kmshell, which would be a more
impactful change. (Perhaps kmshell should return non-zero if the Cancel
button is pressed in the uninstall confirmation dialog, but don't want
to make that change at this point.)

Fixes: #8227
2026-09-02 11:13:49 +02:00
Marc Durdin
b3ca4fc178 docs(developer): add comment to test fixtures to clarify expectations
Fixes: #16496
Test-bot: skip
Build-bot: skip
2026-09-02 11:04:11 +02:00
Marc Durdin
250116cc53
Merge pull request #16481 from keymanapp/fix/developer/11052-project-help-f1
fix(developer): open context help when F1 pressed in Project window
2026-09-02 16:01:18 +07:00
Marc Durdin
cf96bceefa
Merge pull request #16475 from keymanapp/fix/developer/12669-model-editor-copy-link-disable
fix(developer): disable Copy Link in Model Editor if no link to copy
2026-09-02 16:01:09 +07:00
Marc Durdin
7a9983d958
Merge pull request #16456 from keymanapp/fix/developer/12423-ldml-validate-layer-attributes
fix(developer): validate id and modifiers attributes in Layr compiler
2026-09-02 15:59:40 +07:00
Marc Durdin
429011b8e5
Merge pull request #16455 from keymanapp/fix/developer/16454-validate-hardware-layout-count-only-in-layrs
fix(developer): validate the number of hardware layers only in Layr compiler
2026-09-02 15:59:29 +07:00
Marc Durdin
4426d4e64a
Merge pull request #16453 from keymanapp/feat/developer/kmc-out-dir
feat(developer): support output folder and `--continue-on-error`
2026-09-02 15:59:18 +07:00
Marc Durdin
ab8c209647 chore(developer): improve kmc-ldml test messages
* Add more detail on each test name to show expected errors
* Rename `build-fixtures` action to `fixtures-build` in build.sh, to
  reduce confusion with `build` action and allow shorthand usage.

Test-bot: skip
2026-09-02 09:55:02 +02:00
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
945d2cf6d5
Merge pull request #16493 from keymanapp/fix/developer/16492-kmcmplib-message-pattern
fix(developer): add missing message parameters and cleanup kmc-kmn messages further
2026-09-01 22:33:15 +07:00
Marc Durdin
b2e72e94b9
Merge pull request #16445 from keymanapp/change/developer/14211-deprecate-fix-clearcontext
change(developer): deprecate `fix`, `clearcontext`, bump max .kmx version to 19.0
2026-09-01 22:32:31 +07:00
Marc Durdin
5c2702c51b
Merge pull request #16482 from keymanapp/fix/developer/10562-make-toolwindows-non-topmost-on-deactivate
fix(developer): make tool windows non-topmost when TIKE is deactivated
2026-09-01 15:50:33 +07:00
Marc Durdin
998574ef1a
Merge pull request #16480 from keymanapp/chore/developer/11249-strip-printing-support
chore(developer): strip out defunct printing support
2026-09-01 15:50:22 +07:00
Marc Durdin
e8fa870778 chore(developer): address review comments
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-09-01 10:22:56 +02:00
Marc Durdin
f438a519e1 fix(developer): add missing message parameters and cleanup kmc-kmn messages further
* kmcmplib messages need to use a standard pattern for parameters, which
  cannot be named. Several of the messages had the wrong pattern
* Tidy up the kmn-compiler-messages module and make it more consistent
  to reduce risk of this happening in the future
* Add a unit test to further verify the structure of the module as far
  as possible

Fixes: #16492
Test-bot: skip
2026-09-01 10:14:11 +02:00
Marc Durdin
750ad89611 fix(developer): use KmcmpLibMessageParameters pattern for deprecation error message
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-09-01 07:42:50 +02:00
Marc Durdin
1e8cd24960
Merge pull request #16446 from keymanapp/fix/developer/13721-u16tok-targets-store-leading-whitespace
fix(developer): handle leading delimiters correctly in `u16tok()`
2026-09-01 12:27:16 +07:00
Marc Durdin
dd40dfcfbd
Merge pull request #16478 from keymanapp/chore/developer/server-remove-environment-version-duplication
chore(developer): remove duplicated versioning information from Server
2026-09-01 12:26:38 +07:00
Marc Durdin
1d83399b59
Merge pull request #16476 from keymanapp/fix/developer/12165-server-root-path-not-pwd
fix(developer): use path not dependent on pwd for starting Server
2026-09-01 12:26:27 +07:00
Marc Durdin
5a33d65081
Merge pull request #16483 from keymanapp/fix/windows/9694-show-console-window-twice
fix(developer): call 'Show Console' twice to make the console actually show on first use
2026-09-01 12:26:07 +07:00
Marc Durdin
0f3e84bcc7 fix(windows): call 'Show Console' twice to make the console actually show on first use
The underlying issue may be in the node-hide-console-window component.
This fix is adequate in my view, for a low-use code path.

Fixes: #9694
Test-bot: skip
2026-08-31 14:56:12 +02:00
Marc Durdin
d1558946dd fix(developer): make tool windows non-topmost when TIKE is deactivated
When TIKE deactivates, any undocked tool windows retain their
WS_EX_TOPMOST exstyle, which means they stay on top of other
applications. To be polite, remove the topmost style when Keyman
Developer is deactivated - and set it on again when Keyman Developer is
reactivated, so that the windows continue to behave as expected
otherwise.

Fixes: #10562
Test-bot: skip
2026-08-31 14:38:29 +02:00
Marc Durdin
da8d7eff4f fix(developer): open context help when F1 pressed in Project window
Fixes: #11052
Test-bot: skip
2026-08-31 13:34:35 +02:00
Marc Durdin
3d3a5ca1fb chore(developer): strip out defunct printing support
Printing has not been supported from Keyman Developer for quite some
time. This does not appear to have been raised as a user issue. Remove
printing support, and cleanup user interface. As a side-effect, this
will fix #11249, as Delphi's printer support will no longer poll for
default printer on start.

Fixes: #11249
2026-08-31 10:36:00 +02:00
Marc Durdin
efedd63fa4 chore(developer): remove version-data tests and add environment tests
Server lacks tests at present. Removing version-data tests as no longer
relevant meant that there were no tests! So, added environment tests
which relate to changes in #16476.
2026-08-31 10:25:10 +02:00
Marc Durdin
4c2ba9f8e0 fix(developer): handle comment without trailing whitespace
Fixes: #12070
Test-bot: skip
2026-08-31 10:07:00 +02:00
Marc Durdin
9f7beafc57 chore(developer): remove duplicated versioning information from Server
Use `KEYMAN_VERSION` instead of parsing version information.

Test-bot: skip
2026-08-31 09:52:30 +02:00
Marc Durdin
f65299cb36 fix(developer): use path not dependent on pwd for starting Server
Fixes: #12165
Test-bot: skip
2026-08-31 09:28:34 +02:00
Marc Durdin
4b581c1e65 fix(developer): disable Copy Link in Model Editor if no link to copy
Also reorder the buttons more logically, so Copy Link is next to Test
Keyboard, so that the Email Links button which applies to all items in
the list is separate from the Test Keyboard and Copy Link buttons.

Fixes: #12669
Test-bot: skip
2026-08-31 08:05:40 +02:00
Marc Durdin
2f60544835 docs(developer): tweak comments
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
Co-authored-by: Sabine Schmitt <SabineSIL@users.noreply.github.com>
2026-08-28 17:31:06 +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
babb473682 fix(developer): handle leading whitespace correctly in u16tok()
A string with leading delimiters passed into `u16tok()` would not skip
those delimiters. This impacted `&targets` store and other locations.

Note that this tightens input parameter checks for delimiters and
context as well.

Fixes: #13721
Test-bot: skip
2026-08-27 11:15:14 +02:00
Marc Durdin
14b2a9a168 change(developer): deprecate fix, clearcontext, bump max .kmx version to 19.0
Fixes: #14211
Test-bot: skip
2026-08-27 09:24:50 +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