Commit graph

16573 commits

Author SHA1 Message Date
Marc Durdin
0b701275fd chore(developer): remove unused var 2022-09-28 15:25:35 +10:00
Marc Durdin
0f961bd674 feat(developer): visual keyboard compiler in kmc
Adds support for building .kvk files to kmc. At present, .kvk will
always be generated, even if the .xml does not have a hardware layer.
2022-09-27 15:16:07 +10:00
Marc Durdin
b6abe7432a feat(developer): emit .kvk plus e2e test
Adds visual-keyboard-compiler and corresponding e2e test.
2022-09-27 15:03:31 +10:00
Marc Durdin
eb0dbef9d4 chore: npm install 2022-09-27 13:43:58 +10:00
Marc Durdin
03c3c40f29 chore(developer): remove visual-keyboard-compiler.ts 2022-09-27 13:42:56 +10:00
Marc Durdin
26e32a0124 refactor(developer): split file type management into package
Splits file format reading, writing, and in-memory structures of .kmx,
.kvk, .kvks, .xml (ldml keyboard) into separate common module. Lots of
little fixups, sorry...

This will make it much easier for us to reuse these readers and writers
in future code.
2022-09-27 12:33:10 +10:00
Marc Durdin
52dd3e0e85 refactor(developer): move compiler callbacks out of kvks file reader 2022-09-27 05:04:04 +10:00
Marc Durdin
5c65405f65 refactor(developer): move compiler callbacks out of ldml xml reader 2022-09-27 04:52:00 +10:00
Marc Durdin
9480d8931e chore(developer): remove commented code 2022-09-26 20:41:59 +10:00
Marc Durdin
74fc795c1c feat(developer): refactor CompilerCallbacks in tests
Now has a shared object for all tests, reset between tests, and if the
test fails, prints any reported compiler messages.

Also updates kvk and kvks tests with refactored names from previous
commit.
2022-09-26 20:07:00 +10:00
Marc Durdin
50db7a2c9b feat(developer): add schemas for .kvk and .kvks
Also minor tweaks around reading .xml files.
2022-09-26 20:05:52 +10:00
Marc Durdin
c7740a39a2 feat(developer): kvk support
Part of #7238.

Supports reading and writing .kvk files, and reading .kvks files,
to/from an in-memory VisualKeyboard object.

TODO:
 - Full validation of .kvks files
 - Writing .kvks files
 - Some cleanup of API surfaces for consistency
2022-09-26 09:29:38 +10:00
Marc Durdin
828cbdf584
Merge pull request #7341 from keymanapp/feat/developer/epic-ldml/7277-kmc-makes-keyboard-packages
feat(developer): fixes to kmc-package for keyboard support 🙀
2022-09-24 10:12:38 +10:00
Marc Durdin
0502d6ccbd
Merge pull request #7342 from keymanapp/chore/epic-ldml/merge-master-to-feature-ldml
chore: merge master into feature-ldml 🙀
2022-09-24 10:12:00 +10:00
Steven R. Loomis
aff9a93960
Merge pull request #7300 from keymanapp/chore/core/7276-checksums-epic-ldml
chore(core): ignore checksum in 16.0 🙀
2022-09-23 15:53:42 -05:00
Steven R. Loomis
03012248a2 chore(windows): remove crc32 from tike 2022-09-23 11:48:47 -05:00
Steven R. Loomis
1ac4e116b4 chore(windows): remove crc32 from mcompile 2022-09-22 18:42:38 -05:00
Steven R. Loomis
700db810e0 fix(core): fix for incorrect earlier fix 2022-09-22 17:26:39 -05:00
Steven R. Loomis
de3225a4f5 Merge remote-tracking branch 'origin/feature-ldml' into chore/core/7276-checksums-epic-ldml 2022-09-22 17:13:27 -05:00
Marc Durdin
33fd8cffba chore(developer): ts v4.8.3 upgrade breaks mocha 10.0.0 with ts-node
Mocha with ts-register was failing with an error for Keyman Developer
Server.

```
Error: Debug Failure. False expression: Non-string value passed to
`ts.resolveTypeReferenceDirective`, likely by a wrapping package working
with an outdated `resolveTypeReferenceDirectives` signature. This is
probably not a problem in TS itself.
```

The `^4.5.4` version reference for typescript was too lax, and so npm
gave us typescript 4.8.3, which was the latest version in use in the
repo in this branch (in kmc-model). This is also why the build only
failed on this branch -- on master branch, the latest version referenced
was still 4.5.4.

Changing to `~4.5.4` ensures that it stayed on the 4.5.x series, and
mocha then ran version 4.5.5 of tsc.

This is something we should resolve when we move the entire repo to tsc
4.8+. Currently we are still on 4.5.

Note: it may be sensible to review all versioning for typescript,
because the minor version changes are causing functionality breaks,
which kinda violates the spirit of semver ("MINOR version when you add
functionality in a backwards compatible manner"). We can be more
restrictive by updating all package.json references to typescript to
`~4.5.4` instead of the current `^4.5.4` in use throughout. If/when we
do this, we will need to check our ts-node references also.
2022-09-23 05:25:24 +10:00
Marc Durdin
6f949ad63f chore(developer): fixup dependency type changes
* xml2js, `emptyTag` property: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/59259
* semver `parse` `includePrerelease` property: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/61586#discussion_r939877412
* commander use needed to be declared for hextobin
2022-09-22 11:46:44 +10:00
Steven R. Loomis
93a9509302 chore(core): delete crc32.cpp and crc32.pas from some places 2022-09-21 18:13:19 -05:00
Steven R. Loomis
a58b6083a8 fix(core): fix k32_load.cpp 2022-09-21 18:07:45 -05:00
Marc Durdin
cae408edc5 chore: merge feature-ldml into branch 2022-09-21 14:56:45 +10:00
Marc Durdin
551e24c01c
Merge pull request #7339 from keymanapp/chore/common/builder-extra-params-cherry-pick
chore(common): builder extra params support 🏗 🍒
2022-09-21 14:44:09 +10:00
Marc Durdin
2a2c852fab
Merge pull request #7334 from keymanapp/feat/common/builder-feature-tests
feat(common): builder trap-functionality testing 🏗️
2022-09-21 14:44:00 +10:00
Marc Durdin
c704e33708
Merge pull request #7333 from keymanapp/refactor/common/builder_has_vs_start
refactor(common): `builder` script tweaks - "has action" vs "start action" 🏗️
2022-09-21 14:43:51 +10:00
Marc Durdin
f53bfad78e
Merge pull request #7319 from keymanapp/refactor/web/low-level-build-scripts
refactor(common/web): reworks low-level module build scripts 🏗️
2022-09-21 14:43:43 +10:00
Marc Durdin
f3fbf01d30 feat(developer): fixes to kmc-package for keyboard support
kmc-package had a number of gaps and errors. This fixes a bunch of
problems:

* Wrong case on XML elements
* Wrong metadata in system element
* Missing kmp.json in Files array (needs test in consumer apps later)
* Missing displayFont, oskFont in keyboard elements
* Including copyLocation when == 0
* Including an empty startMenu element
* Incorrect assumptions about location of source files in source/ folder

Note that support for followKeyboardVersion will come later; for now, it
uses the possibly-stale value from the Keyboard element in the .kps
file.
2022-09-21 14:37:08 +10:00
Marc Durdin
bd5f6877bb feat(developer): fixup fixture json 2022-09-21 14:33:04 +10:00
Marc Durdin
2b9a2949a6 feat(developer): kmc-package khmer_angkor fixture 2022-09-21 14:32:42 +10:00
Marc Durdin
a9b08480e3 chore(common): builder extra params support 2022-09-21 13:52:06 +10:00
Darcy Wong
7e3a7847e8
Merge pull request #7325 from keymanapp/fix/android/check-listview
fix(android/engine): Check listview for setting keyboard selection
2022-09-21 09:54:56 +07:00
Joshua A. Horton
e23bf6b649 chore(common): trap test cleanup post-rebase 2022-09-21 09:40:37 +07:00
Joshua A. Horton
c1bd242047 chore(common): Merge branch 'refactor/common/builder_has_vs_start' into feat/common/builder-feature-tests 2022-09-21 09:35:51 +07:00
Joshua Horton
825cd3c8e9
chore(common): typo fix 2022-09-21 09:24:53 +07:00
Joshua A. Horton
5147ca9159 chore(common): Merge branch 'refactor/web/low-level-build-scripts' into refactor/common/builder_has_vs_start 2022-09-21 09:12:40 +07:00
Joshua A. Horton
82ac924070 feat(common): extra test - errors within functions 2022-09-21 08:45:13 +07:00
Joshua A. Horton
c4d924aa73 chore(common): cleanup, review adjustments 2022-09-21 08:39:21 +07:00
Joshua A. Horton
f6a480c6e6 chore(common): Merge branch 'refactor/web/low-level-build-scripts' into feat/common/builder-feature-tests 2022-09-21 08:31:34 +07:00
Joshua A. Horton
f7c399aa96 change(common): more adjustments per PR review 2022-09-21 08:30:32 +07:00
Marc Durdin
51b1808c9a chore: typo in lm-worker build 2022-09-21 10:32:33 +10:00
Marc Durdin
665a872d9e
Merge pull request #7336 from keymanapp/fix/core/build-d-dash-missing
fix(core): add hyphen to d parameter 🙀
2022-09-21 10:31:03 +10:00
Marc Durdin
a3129adedc refactor(common): rename builder_has_action and document
* `builder_has_action` renamed to `builder_start_action`
* `builder_report` renamed to `builder_finish_action`
* `builder_has_action` created to be a silent test for the action
* Added reasonably comprehensive documentation.
2022-09-21 10:21:35 +10:00
Marc Durdin
3828eddf4f fix(core): add hyphen to d parameter
I could add a trap for this to build-utils.sh but that's more work for
little benefit for an internal tool.
2022-09-21 05:46:21 +10:00
Keyman Server
5d6ffb7655
Merge pull request #7335 from keymanapp/auto/version-master-16.0.69
auto: increment master version to 16.0.69
2022-09-21 04:02:43 +10:00
Keyman Build Agent
e6337301a2 auto: increment master version to 16.0.69 2022-09-20 14:02:05 -04:00
Joshua A. Horton
636e69b841 feat(common): builder trap-functionality testing 2022-09-20 15:46:25 +07:00
Joshua A. Horton
6aaad72d11 docs(common): tweak to new func doc-comments 2022-09-20 13:52:24 +07:00
Joshua A. Horton
5c51597a04 feat(common): _builder_match_action 2022-09-20 13:47:02 +07:00