Commit graph

33247 commits

Author SHA1 Message Date
Marc Durdin
8b50ac843a
Merge pull request #15650 from keymanapp/dependabot/npm_and_yarn/resources/build/pr-build-status/minimatch-9.0.9
chore(deps-dev): bump minimatch from 9.0.5 to 9.0.9 in /resources/build/pr-build-status
2026-03-06 21:59:37 +07:00
Marc Durdin
11e3e100a6
Merge pull request #15626 from keymanapp/fix/developer/15625-ngrok-upgrade
fix(developer): ngrok upgrade
2026-03-06 21:49:13 +07:00
dependabot[bot]
7df8eac192
chore(deps-dev): bump minimatch in /resources/build/pr-build-status
Bumps [minimatch](https://github.com/isaacs/minimatch) from 9.0.5 to 9.0.9.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v9.0.5...v9.0.9)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 9.0.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-06 14:07:21 +00:00
Marc Durdin
deec23cfde
Merge pull request #15672 from keymanapp/fix/developer/11706-debug-memo-get-anchor-with-tom-interface
fix(developer): retrieve debug memo anchor without side effects
2026-03-06 21:01:26 +07:00
Marc Durdin
99cec792d4
Merge pull request #15669 from keymanapp/fix/developer/15063-clone-overwrite
fix(developer): prevent new projects from overwriting existing projects
2026-03-06 21:01:11 +07:00
Marc Durdin
aff6c7d686
Merge pull request #15684 from keymanapp/maint/developer/test-callbacks-cleanup-redux
maint(developer): cleanup additional TestCompilerCallbacks references
2026-03-06 21:00:48 +07:00
Marc Durdin
659e85033a
Merge pull request #15665 from keymanapp/maint/developer/test-callbacks-cleanup
maint(developer): make `TestCompilerCallbacks` usage more consistent and simplify
2026-03-06 21:00:39 +07:00
Marc Durdin
6058054fbb
Merge pull request #15691 from keymanapp/docs/build-bot-and-git-ignore
docs: tweak build bot docs and update imsample gitignore
2026-03-06 20:57:39 +07:00
Marc Durdin
727e621ee3
Merge pull request #15690 from keymanapp/maint/common/rollback-typescript-upgrade-5.4.5
maint(common): rollback from Typescript 5.8.2 to 5.4.x
2026-03-06 20:56:23 +07:00
Marc Durdin
281e382171 chore(developer): Merge branch 'master' into fix/developer/15625-ngrok-upgrade 2026-03-06 14:52:41 +01:00
Marc Durdin
cca8d4d21f docs: tweak build bot docs and update imsample gitignore
Just minor maintenance.

Build-bot: skip
Test-bot: skip
2026-03-06 10:21:04 +01:00
Marc Durdin
0ce96dbdcc maint(common): rollback from Typescript 5.8.2 to 5.4.x
Pull request #15647 bumped our version of tsc from 5.4.5 to 5.8.2,
because api-extractor wanted it. We have not tested yet with 5.8.2 and
there are some incompatibility warnings and a new error that was patched
in #15689.

We will upgrade to a later version of Typescript in due course, but now
is not the time.

With this patch, we rollback our Typescript version to 5.4.x.

Sample warning from build:

```
[web/src/engine/osk/gesture-processor/src/tools] ## build:test-module starting...
=============

WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.

You may find that it works just fine, or you may not.

SUPPORTED TYPESCRIPT VERSIONS: >=4.7.4 <5.5.0

YOUR TYPESCRIPT VERSION: 5.8.2

Please only submit bug reports when using the officially supported version.

=============
```

Report of typescript version usage with this patch:

```
$ npm ls typescript
root@ D:\Projects\keyman\app
├─┬ @keymanapp/auto-history-action@ -> .\resources\build\version
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/common-test-resources@ -> .\common\test\resources
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/common-types@ -> .\common\web\types
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/developer-server@ -> .\developer\src\server
│ ├─┬ tsc-watch@4.6.2
│ │ └── typescript@5.4.5 deduped
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/developer-test-helpers@ -> .\developer\src\common\web\test-helpers
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/developer-utils@ -> .\developer\src\common\web\utils
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/gesture-recognizer@ -> .\web\src\engine\osk\gesture-processor
│ ├─┬ @keymanapp/web-utils@ -> .\web\src\engine\common\web-utils
│ │ └── typescript@5.4.5 deduped
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/keyman-version@ -> .\common\web\keyman-version
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/kmc-analyze@ -> .\developer\src\kmc-analyze
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/kmc-copy@ -> .\developer\src\kmc-copy
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/kmc-generate@ -> .\developer\src\kmc-generate
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/kmc-keyboard-info@ -> .\developer\src\kmc-keyboard-info
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/kmc-kmn@ -> .\developer\src\kmc-kmn
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/kmc-ldml@ -> .\developer\src\kmc-ldml
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/kmc-model-info@ -> .\developer\src\kmc-model-info
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/kmc-model@ -> .\developer\src\kmc-model
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/kmc-package@ -> .\developer\src\kmc-package
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/kmc@ -> .\developer\src\kmc
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/langtags@ -> .\common\web\langtags
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/lexical-model-layer@ -> .\web\src\engine\predictive-text\worker-main
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/lm-message-types@ -> .\web\src\engine\predictive-text\types
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/lm-worker@ -> .\web\src\engine\predictive-text\worker-thread
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/models-templates@ -> .\web\src\engine\predictive-text\templates
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/models-wordbreakers@ -> .\web\src\engine\predictive-text\wordbreakers
│ └── typescript@5.4.5 deduped
├─┬ @keymanapp/sourcemap-path-remapper@ -> .\common\tools\sourcemap-path-remapper
│ └── typescript@5.4.5 deduped
├─┬ @microsoft/api-extractor@7.57.6
│ └── typescript@5.8.2
├─┬ @typescript-eslint/eslint-plugin@7.13.1
│ └─┬ ts-api-utils@1.3.0
│   └── typescript@5.4.5 deduped
├─┬ eslint-config-love@53.0.0
│ └── typescript@5.4.5 deduped
├─┬ keyman@ -> .\web
│ ├─┬ @keymanapp/recorder-core@ -> .\web\src\tools\testing\recorder-core
│ │ └── typescript@5.4.5 deduped
│ └─┬ @keymanapp/web-sentry-manager@ -> .\web\src\engine\sentry-manager
│   └── typescript@5.4.5 deduped
└── typescript@5.4.5
```

Test-bot: skip
2026-03-06 09:57:36 +01:00
Marc Durdin
17377fbbba
Merge pull request #15689 from keymanapp/chore/web/remove-implicit-any-error
chore(web): remove implicit any type when setting processingConfig.itemIdentifier
2026-03-06 14:26:43 +07:00
Marc Durdin
645e1cd16f chore(web): remove implicit any type when setting processingConfig.itemIdentifier
Not exactly clear what triggered this? Perhaps related to npm package updates,
but hard to see how.

Test-bot: skip
Build-bot: skip build:web
2026-03-05 21:46:40 +01:00
Marc Durdin
274d7891e6
Merge pull request #15681 from keymanapp/dependabot/npm_and_yarn/multer-2.1.1
chore(deps): bump multer from 2.0.2 to 2.1.1
2026-03-06 03:37:52 +07:00
Marc Durdin
d5db6f5395
Merge pull request #15682 from keymanapp/dependabot/npm_and_yarn/developer/src/server/src/win32/trayicon/addon-src/tar-7.5.10
chore(deps): bump tar from 7.5.7 to 7.5.10 in /developer/src/server/src/win32/trayicon/addon-src
2026-03-06 03:28:33 +07:00
Marc Durdin
0e8f468963
Merge pull request #15648 from keymanapp/dependabot/npm_and_yarn/developer/src/server/src/win32/trayicon/addon-src/minimatch-10.2.4
chore(deps): bump minimatch from 10.1.1 to 10.2.4 in /developer/src/server/src/win32/trayicon/addon-src
2026-03-06 03:28:02 +07:00
Marc Durdin
ceeb2ef231
Merge pull request #15647 from keymanapp/dependabot/npm_and_yarn/multi-e17586116f
chore(deps): bump minimatch and @microsoft/api-extractor
2026-03-06 03:27:54 +07:00
Marc Durdin
746cfc7596
Merge pull request #15632 from keymanapp/dependabot/npm_and_yarn/rollup-4.59.0
chore(deps-dev): bump rollup from 4.22.4 to 4.59.0
2026-03-06 03:27:46 +07:00
Marc Durdin
0aa075ff0e
Merge pull request #15631 from keymanapp/dependabot/npm_and_yarn/basic-ftp-5.2.0
chore(deps-dev): bump basic-ftp from 5.0.5 to 5.2.0
2026-03-06 03:27:38 +07:00
Keyman Server
f2523af1ff
Merge pull request #15687 from keymanapp/auto/version-master-19.0.211
auto: increment master version to 19.0.211
2026-03-05 19:04:33 +01:00
Keyman Build Agent
bcba02671f auto: increment master version to 19.0.211
Test-bot: skip
Build-bot: skip
2026-03-05 12:01:35 -06:00
Marc Durdin
ad7966950d chore(developer): address review comments
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
2026-03-05 15:19:01 +01:00
Marc Durdin
f1163860d1 fix(developer): address review comments 2026-03-05 15:14:54 +01:00
Marc Durdin
8f3b2b06c9
Merge pull request #15670 from keymanapp/fix/developer/13958-setup-feedback
fix(developer): improve UI feedback on upgrade
2026-03-05 19:20:51 +07:00
Marc Durdin
a4b0c02473
Merge pull request #15667 from keymanapp/fix/developer/15630-missing-description-in-windows-import
fix(developer): apply keyboard description in Windows keyboard import
2026-03-05 19:19:09 +07:00
Marc Durdin
724a8ea0f5 maint(developer): cleanup additional TestCompilerCallbacks references
Address a review comment from #15665 and cleanup additional references
that I missed the first time around, along with the `fs.readFileSync`
`Uint8Array` cast.

Follows: #15665
Test-bot: skip
2026-03-05 13:15:43 +01:00
dependabot[bot]
1a07aadc05
chore(deps): bump tar
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.7 to 7.5.10.
- [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.7...v7.5.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-05 09:08:11 +00:00
dependabot[bot]
0700a3e444
chore(deps): bump multer from 2.0.2 to 2.1.1
Bumps [multer](https://github.com/expressjs/multer) from 2.0.2 to 2.1.1.
- [Release notes](https://github.com/expressjs/multer/releases)
- [Changelog](https://github.com/expressjs/multer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/expressjs/multer/compare/v2.0.2...v2.1.1)

---
updated-dependencies:
- dependency-name: multer
  dependency-version: 2.1.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-05 08:15:02 +00:00
Keyman Server
d3c129026b
Merge pull request #15678 from keymanapp/auto/version-master-19.0.210
auto: increment master version to 19.0.210
2026-03-04 19:04:10 +01:00
Keyman Build Agent
ba10f48694 auto: increment master version to 19.0.210
Test-bot: skip
Build-bot: skip
2026-03-04 12:01:49 -06:00
Eberhard Beilharz
87da33796a
Merge pull request #15656 from keymanapp/refactor/core/cleanup
refactor(core): cleanup 

- fix whitespace
- rename private fields of `ldml_processor` to start with underscore

Precedes: #15609
2026-03-04 15:27:47 +01:00
Marc Durdin
59f02a6a55 fix(developer): retrieve debug memo anchor without side effects
Use RichEdit's `ITextDocument` interface to retrieve the selection
anchor/caret information, and avoid the side-effects that can arise with
the hacky `EM_GETSEL` / `EM_SETSEL` pattern we used previously.

Changing the selection with `EM_SETSEL` in order to find the anchor
point causes notification messages to be generated that can arrive at an
unexpected time in some text selection scenarios, which ended up with us
having a saved selection in the debugger pointing to the wrong text
range.

The name `Anchor` was a misnomer, because it was actually returning the
caret position, not the anchor for the selection, which is the far side
of the selection from the anchor!

Fixes: #11706
Fixes: KEYMAN-DEVELOPER-18A
2026-03-04 14:01:42 +01:00
Eberhard Beilharz
bf388295ca
Merge pull request #15576 from keymanapp/feat/linux/7784_diagreport
feat(linux): implement diagnostic report

This change allows to collect data for a diagnostic report. This can be done either from the command line through the new `km-diag-report` tool, or in `km-config` from the new `Support` tab that allows to generate the report and then copy it to the clipboard or save as a file.

The diagnostic report contains installed browsers and their versions and installation methods as well as the default browser. It checks for browsers installed through apt (Ubuntu/Debian), snap, and flatpak.
    
The change also has an implementation for pacman (Arch Linux) and dnf/yum (Fedora), although these have not been tested.

Fixes: #7784
2026-03-04 10:32:47 +01:00
Marc Durdin
26cf278cc1 fix(developer): improve UI feedback on upgrade
Show a progress dialog when running the Keyman Developer upgrade
(`-au` parameter).

Fixes: #13958
Test-bot: skip
2026-03-04 06:27:36 +01:00
Marc Durdin
7a8fa1bf7f fix(developer): prevent new projects from overwriting existing projects
The new project UI process detects if the target project folder already
exists in a given path, and asks if the author wants to overwrite it.

However, this has been inconsistently implemented -- in the clone
keyboard case, the process would fail with a message "error KM0B004:
Output path <PATH> already exists, not overwriting". In other cases, no
files would be removed, but existing files would be overwritten where
there was a collision, resulting in a messy project folder.

I have opted to prevent this situation in a consistent manner, requiring
the author to remove the folder themselves in Windows Explorer, even
though this is higher friction, because it pushes them into verifying
that they actually want to delete the contents of the folder.

I also took the opportunity to DRY out this verification process in the
six different New Project dialogs.

Fixes: #15063
2026-03-04 05:45:21 +01:00
Marc Durdin
a0ecd51c60 fix(developer): apply keyboard description in Windows keyboard import
Fixes: #15630
Test-bot: skip
2026-03-04 04:57:56 +01:00
Shawn Schantz
5a26e59add
Merge pull request #15655 from keymanapp/maint/ios/fv/xcode-26
maint(ios): update fv Cartfile for Xcode 26
2026-03-03 15:57:47 -05:00
Keyman Server
8b8b6b045f
Merge pull request #15666 from keymanapp/auto/version-master-19.0.209
auto: increment master version to 19.0.209
2026-03-03 19:03:55 +01:00
Keyman Build Agent
b0bfc6be6f auto: increment master version to 19.0.209
Test-bot: skip
Build-bot: skip
2026-03-03 12:02:02 -06:00
Marc Durdin
529a49431e maint(developer): make TestCompilerCallbacks usage more consistent and simplify
Simplify usage of `TestCompilerCallbacks` by making it responsible for
the `beforeEach` and `afterEach` incantations itself. There are a couple
of more complex usages of `TestCompilerCallbacks` which have been
excluded from this change on purpose.

Renamed `testCallbacks` to `callbacks` in the one place where it was
different.

Hoist @types/node and @types/mocha because inconsistent versions of
@types/mocha were causing compiler errors with this change.

Also added a cast to `fs.readFileSync` to `Uint8Array` to eliminate
compiler warnings/errors in test files.

Fixes: #15654
Test-bot: skip
2026-03-03 16:44:06 +01:00
Marc Durdin
0e0b858269
Merge pull request #15653 from keymanapp/fix/developer/15627-checkPackageInfo-null-return-values
fix(developer): use correct return values and nullish checks in package-validation
2026-03-03 20:25:45 +07:00
Marc Durdin
cb099d2490
Merge pull request #15622 from keymanapp/fix/developer/15621-handle-missing-package-object-in-kps-file
fix(developer): handle .kps file that has no `<Package>` element
2026-03-03 20:25:37 +07:00
Marc Durdin
ddb06c6f4b
Merge pull request #15616 from keymanapp/fix/developer/15601-crlf-in-ldml-debugger
fix(developer): handle CRLF as CR internally in LDML debugger
2026-03-03 20:25:27 +07:00
Eberhard Beilharz
8aea535d55
Merge pull request #15629 from keymanapp/docs/core/docs
docs(core): add keyhandling doc

This documents the state of `km_core_actions.emit_keystroke` for different keys pressed. Also some cleanup in other docs.

This documents the state after merging #15609 (for ldml keyboards) and NN (for kmn keyboards).

Follows: #15609
2026-03-02 20:22:34 +01:00
Keyman Server
aa54ce23d8
Merge pull request #15657 from keymanapp/auto/version-master-19.0.208
auto: increment master version to 19.0.208
2026-03-02 19:04:03 +01:00
Keyman Build Agent
e06868a622 auto: increment master version to 19.0.208
Test-bot: skip
Build-bot: skip
2026-03-02 12:01:33 -06:00
Eberhard Beilharz
2bd6cfd735
refactor(core): rename fields to start with underscore
Test-bot: skip
2026-03-02 17:27:15 +01:00
Eberhard Beilharz
d8a5f694da
refactor(core): fix whitespace
Build-bot: skip
Test-bot: skip
2026-03-02 17:26:14 +01:00
Shawn Schantz
dddd500052 maint(fv): update Cartfile for Xcode 26 2026-03-02 09:16:38 -05:00