Commit graph

4688 commits

Author SHA1 Message Date
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
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
Marc Durdin
42eec30825 fix(developer): handle CRLF as CR internally in LDML debugger
While the debugger memo internally uses CRLF, in all references, CRLF
should be converted to CR for consistent text manipulation operations.
This follows a similar fix in the kmn debugger in #13334.

Also addresses review comments from @ermshiperete.

Fixes: #15601
Relates-to: #13334
2026-03-02 14:44:18 +01:00
Marc Durdin
3e41d7094f chore(developer): cleanup kps file reader per review comments
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-03-02 14:38:45 +01:00
Marc Durdin
343cf45672 fix(developer): use correct return values and nullish checks in package-validation
Turned on strictNullChecks to verify the file and found a few other
problems in this file. However, there are many null check errors
reported across the kmc-package source which should be addressed in a
future patch. (This is a broader problem for the entire Typescript
source of Keyman.)

Fixes: #15627
Test-bot: skip
Build-bot: skip build:developer
2026-03-02 10:42:33 +01:00
Marc Durdin
b2dbd357b8 fix(developer): address review comments
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-03-02 10:31:20 +01:00
dependabot[bot]
ede902df4a
chore(deps): bump minimatch
Bumps [minimatch](https://github.com/isaacs/minimatch) from 10.1.1 to 10.2.4.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v10.1.1...v10.2.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-28 09:56:42 +00:00
Marc Durdin
058df11f0c docs(developer): refresh ngrok help 2026-02-26 11:39:58 +01:00
Marc Durdin
7d8e3978a1 fix(developer): ngrok upgrade
The existing ngrok package is no longer maintained, so this commit
switches to @ngrok/ngrok. However, this means a number of deployment
changes, as the new module uses a node binary module rather than a
standalone executable, and the path to the module is assumed to be on
the Node search path.

The new module also requires VC++ redistributable, so installation of
that has been added to the Server Options dialog.

Use of ngrok with Keyman Developer Server should be in theory possible
with non-Windows platforms with this change, if the user installs the
appropriate @ngrok binary package (e.g. @ngrok/ngrok-darwin-universal)
globally before starting the server.

Fixes: #15625
Build-bot: skip release:developer
2026-02-26 10:07:06 +01:00
Marc Durdin
9fca089dc8 fix(developer): handle .kps file that has no <Package> element
Fixes: #15621
Fixes: KEYMAN-DEVELOPER-37D
Test-bot: skip
2026-02-24 16:48:03 +01:00
Marc Durdin
79d13a4ad2 fix(developer): package compiler handle missing info section in .kps file
Fixes: #15619
Fixes: KEYMAN-DEVELOPER-27R
Test-bot: skip
2026-02-24 16:17:06 +01:00
Sabine
6819c7c76b feat(developer): small changes: copyright;consolidate imports;typos 2026-02-24 13:58:53 +01:00
Sabine
154f119b81 feat(developer): allow longer timeout for est of run(inputFilename, null) 2026-02-23 13:26:35 +01:00
Sabine
8b795e0394 feat(developer): place ajv under devDependencies; remove from depemdencies; add ajv-cli ajv-format to devDependencies 2026-02-23 11:40:00 +01:00
Sabine
8383a9cc5b feat(developer): dummy change to start TC 2026-02-23 10:48:47 +01:00
Sabine
ed1257be25 feat(developer): completely remove do_kmc_convert_test() from build.sh 2026-02-18 17:50:19 +01:00
Sabine
86f18a0438 feat(developer): remove do_kmc_convert_test from build.sh 2026-02-18 15:47:35 +01:00
Sabine
d654c2a98c feat(developer): move failure conditions; use inputfilename as parameter (instead of outputfilename 2026-02-18 13:15:20 +01:00
Marc Durdin
1207a01645 docs(developer): address review comments on walkthrough
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
2026-02-18 10:56:01 +01:00
Sabine
0a07164ef1 feat(developer): rework findUsedKeysCount; 2026-02-17 23:47:34 +01:00
Sabine
0033e2cdac feat(developer):
consolidate imports
use prefix '@__' instead of   '@_'
remove fixupEmptyStringToEmptyObject_keylayout and use fixupEmptyStringToEmptyObject instead
2026-02-17 23:15:19 +01:00
Marc Durdin
c10a74cdf0 docs: feedback for walkthrough
Presenting as a commit as I made many minor edits in-place and this was
much simpler than trying to use GitHub review for this level of detail.

Test-bot: skip
Build-bot: skip
2026-02-17 14:01:17 +01:00
Sabine
7d51d87f12 Merge branch 'feat/developer/kmc-convert' of https://github.com/keymanapp/keyman into feat/developer/kmc-convert 2026-02-17 12:46:46 +01:00
Sabine
05357d9a52 feat(developer): remove underscores from all symbol names (e.g. input_filename -> inputFilename) 2026-02-17 12:45:59 +01:00
SabineSIL
7c4ea1bb5e
Merge branch 'epic/kmc-convert' into feat/developer/kmc-convert 2026-02-16 17:47:38 +01:00
Sabine
9c9f13cc11 feat(developer): remove empty file, whitespace, comment; add/remove empty lines 2026-02-16 16:43:35 +01:00
Sabine
3888fe7a54 feat(developer): remove kmcConvertUtil.ts
edit text: "copyright..." in header
2026-02-16 15:42:13 +01:00
Marc Durdin
90f77bdbd6
Merge pull request #15589 from keymanapp/auto/A19S22-merge-master-into-web-core
auto: A19S22 merge master into web-core 🎼
2026-02-13 18:28:40 +07:00
Eberhard Beilharz
22c06a0c24
Merge pull request #15471 from keymanapp/chore/core/deprecation
chore(core): Remove `km_core_keyboard_attrs.folder_path`

PR #12769 removed `km_core_keyboard_load` that allowed loading a keyboard from a path. Instead we now pass a BLOB to core to load a keyboard. With the function gone there is no longer a need to have a field with the path.

Follow-up-of: #12497
Related-to: #12769
2026-02-13 11:27:01 +01:00
Marc Durdin
ed63b70bb4
Merge branch 'epic/web-core' into auto/A19S22-merge-master-into-web-core 2026-02-13 11:08:05 +07:00
Keyman Server
1ab4c695f2
Merge branch 'epic/kmc-convert' into auto/A19S22-merge-master-into-kmc-convert 2026-02-13 04:59:03 +01:00
dependabot[bot]
7f62458843
chore(deps): bump @isaacs/brace-expansion
Bumps @isaacs/brace-expansion from 5.0.0 to 5.0.1.

---
updated-dependencies:
- dependency-name: "@isaacs/brace-expansion"
  dependency-version: 5.0.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-03 19:54:22 +00:00
SabineSIL
39ef4009f6
Merge branch 'epic/kmc-convert' into feat/developer/kmc-convert 2026-02-03 13:34:23 +01:00
DavidLRowe
0373122027
update macOS references in glossary 2026-02-02 13:52:54 -05:00
DavidLRowe
aa6f6d2fa3
update arrows and macOS references 2026-02-02 13:47:19 -05:00
DavidLRowe
8f36d07278
add TOC link
in response to Darcy's suggestion

Co-authored-by: Darcy Wong <darcy_wong@sil.org>
2026-02-02 13:01:35 -05:00
Darcy Wong
13626ff02d
Merge branch 'master' into walkthrough 2026-02-02 10:11:16 +07:00
Marc Durdin
e8b94f147c
Merge pull request #15526 from keymanapp/dependabot/npm_and_yarn/fast-xml-parser-5.3.4
chore(deps): bump fast-xml-parser from 5.2.2 to 5.3.4
2026-02-02 01:18:12 +07:00
Keyman Server
e77d46f873
Merge branch 'epic/web-core' into auto/A19S21-merge-master-into-web-core 2026-01-31 06:31:15 +01:00
Keyman Server
1f93db0aa0
Merge branch 'epic/kmc-convert' into auto/A19S21-merge-master-into-kmc-convert 2026-01-31 06:30:26 +01:00
dependabot[bot]
13a59f124f
chore(deps): bump fast-xml-parser from 5.2.2 to 5.3.4
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 5.2.2 to 5.3.4.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.2.2...v5.3.4)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-version: 5.3.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-30 20:48:02 +00:00
dependabot[bot]
0dd1d843e2
chore(deps): bump tar
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.6 to 7.5.7.
- [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.6...v7.5.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-29 14:03:10 +00:00
dependabot[bot]
2d3fe885b7
chore(deps): bump tar
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.3 to 7.5.6.
- [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.3...v7.5.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-26 00:46:55 +00:00
Eberhard Beilharz
0422b3f912
chore(core): Remove km_core_keyboard_attrs.folder_path
PR #12769 removed `km_core_keyboard_load` that allowed loading a keyboard
from a path. Instead we now pass a BLOB to core to load a keyboard.
With the function gone there is no longer a need to have a field with the
path.

Follow-up-of: #12497
Related-to: #12769
Test-bot: skip
2026-01-20 15:17:38 +01:00
dependabot[bot]
0956254ecd
chore(deps): bump tar and node-gyp
Bumps [tar](https://github.com/isaacs/node-tar) to 7.5.3 and updates ancestor dependency [node-gyp](https://github.com/nodejs/node-gyp). These dependencies need to be updated together.


Updates `tar` from 6.2.1 to 7.5.3
- [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/v6.2.1...v7.5.3)

Updates `node-gyp` from 10.2.0 to 12.1.0
- [Release notes](https://github.com/nodejs/node-gyp/releases)
- [Changelog](https://github.com/nodejs/node-gyp/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nodejs/node-gyp/compare/v10.2.0...v12.1.0)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.3
  dependency-type: indirect
- dependency-name: node-gyp
  dependency-version: 12.1.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-19 08:01:45 +00:00