Commit graph

512 commits

Author SHA1 Message Date
Marc Durdin
8ec69471dc feat(common): kmx file reader
Read a .kmx file into memory in Typescript. Currently only reads stores
from the file, as these are the most common things needed for other
processes. Will add support for reading other metadata and rules in
future when required.
2023-04-21 11:52:18 +07:00
Marc Durdin
e0ed058e89 refactor(developer): kmc-model to use CompilerEvent
Replaces the existing error reporting in kmc-model with CompilerEvent
style messages. Some of the existing error reporting was kinda nice, but
consistency trumps pretty here.

One downside at present is the global filename and line variables in the
model-compiler-errors.ts unit. This is fragile, and should probably be
refactored further in the future.

Where it made sense, I converted various throws into ModelCompilerError
instances. If it appeared to be an internal error, I left it as-is, but
the external API interfaces wrap all unknown exceptions and convert them
into a compiler error message, so these APIs (compileModel and
loadFromFilename) now have a guarantee that they will never throw.

At this point, all of the error messages in the model compiler are
unrecoverable -- they will halt the compile entirely. However, the
pathway is there to support recoverable errors through the normal
callbacks.reportMessage mechanisms.

The message-counting mechanism is currently missing from this, as it
belongs in the API consumer, rather than in the low-level reporting
infrastructure. This means that models with large numbers of warnings
are going to generate scads of messages for now.

Note that the _users_ of CompilerCallbacks are subject to change in the
future, once we have all the compilers using the callbacks.
2023-04-20 16:40:04 +07:00
Marc Durdin
39d473fb2d refactor(developer): move comperr.h to kmn_compiler_errors.h
Consolidates the two copies of comperr.h (they were identical) and
moves to a common folder. Updates all references to comperr.h, except
for one github commit ref.
2023-04-20 13:20:29 +07:00
Joshua Horton
4588fbcb68
Merge pull request #8629 from keymanapp/fix/common/web/pred-text-test-dependency
chore(web): sets kmc-model as dependency of input-processor test action
2023-04-20 11:24:25 +07:00
Joshua A. Horton
78562a0bd9 chore(web): cleanup per PR reviews 2023-04-20 10:30:49 +07:00
Marc Durdin
2f7407b4b8 feat(developer): warn if .kps file includes a non-binary .kvk file
Relates to #8150.

Legacy .kmp compiler would transform xml-format .kvk files into a binary
.kvk file; now we want that to remain the responsibility of the keyboard
compiler, so we'll warn the few users who are still doing this.
2023-04-19 15:32:29 +07:00
Joshua A. Horton
66da792319 chore(web): sets kmc-model as dependency of input-processor test action 2023-04-19 14:26:44 +07:00
Marc Durdin
66542f6323 feat(developer): use new message infrastructure in kmc-kmn
Moves to using the `reportMessage` callback for reporting all errors in
kmc-kmn.

This required some patching to common/web/types in order to get the new
constants in place and add support for line numbers to `CompilerEvent`,
so at the same time I refactored `compilerErrorSeverityName` into the
module.

After the refactor, coverage tests were failing because they included
the test/ folder, so cleaned that up at the same time.
2023-04-19 10:13:14 +07:00
Marc Durdin
501cf03dc2 chore(common): update description for 'build.sh pack' 2023-04-12 14:18:31 +07:00
Marc Durdin
3265a714f2 chore(common): add missing deps and files for npm publish
The build/ folder for most packages was missing due to being listed in
.gitignore.

Also, @keymanapp/ldml-keyboard-constants package was not being published
despite being a dependency of @keymanapp/kmc-keyboard.

Instead of relying on npm's use of .gitignore / .npmignore (which has
seriously wonky behaviours), we list the files that should be included
in package.json.

NPM Wonky behaviours: it seems that .npmignore causes .gitignore in the
same folder to be ignored. But, higher level .gitignore files still
affect the files included in the package, which makes
specification-by-exclusion painful (negating exclusions, etc). We do not
recommend use of .npmignore anywhere for this reason.
2023-04-12 14:05:05 +07:00
Marc Durdin
10a59f789d fix(common): support npm pack and consolidate npm publishing
Fixes #8586.

All npm publish actions in the repository are now run as part of the
Developer release build, hosted at present by kmc, until we setup a
higher-level build script to do it.

Adds a 'pack' action which mirrors 'publish' for all npm packages.

Removes unnecessary dev dependencies of models-templates and
models-wordbreakers from kmc-model.

Web Release build CI step has been updated to check for presence of
.build-builder.
2023-04-12 11:55:31 +07:00
Marc Durdin
c5d79a9fb4
Merge pull request #7330 from keymanapp/feature-kmcompx
epic: kmcompx - kmcmpdll cross-platform compiler 🚑
2023-04-10 07:34:04 +10:00
Marc Durdin
787b32ba34
Revert "chore(web): merge master into feature-esmodule-web-engine (A17S9 end) 🧩" 2023-03-31 14:17:37 +11:00
Joshua Horton
6df63eddc5
Merge pull request #8549 from keymanapp/chore/master-to-esmodule-merge-a17s9 2023-03-31 08:51:27 +07:00
Joshua A. Horton
e5241956d2 change(web): changes per PR review suggestions, puts ModelSpec in own source file 2023-03-27 13:18:53 +07:00
Joshua A. Horton
6682886566 chore(web): Merge branch 'change/web/webview-context-manager' into change/web/language-resource-module 2023-03-27 12:19:46 +07:00
Joshua A. Horton
2a6733600f chore(web): Merge branch 'feature-esmodule-web-engine' into change/web/webview-context-manager 2023-03-27 12:15:25 +07:00
Joshua Horton
a14d4a4028
Merge pull request #8463 from keymanapp/refactor/common/web/prediction-context
refactor(common/web): context-swapping for PredictionContext 🧩
2023-03-27 11:56:29 +07:00
Joshua Horton
e8d05db4d3
chore(web): Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-03-27 11:56:02 +07:00
Joshua Horton
bd2bf9af24
Merge pull request #8462 from keymanapp/feat/common/web/mock-selections
feat(common/web): mocks may now model selected text 🧩
2023-03-27 11:55:03 +07:00
Marc Durdin
2a871c8165 chore(developer): publish all required npm modules 2023-03-27 11:36:21 +07:00
Steven R. Loomis
93ca0473e5 fix(developer): ldml add ABNT2 🙀
- compiles, at least

For: #8161
2023-03-24 12:49:00 -05:00
Steven R. Loomis
a474d8cbc6 fix(developer): ldml add JIS 🙀
- compiles, at least

For: #8161
2023-03-24 12:13:36 -05:00
Joshua A. Horton
20567d494b chore(web/engine): Merge branch 'chore/web/update-feature-esmodule-for-configure-fix' into change/web/engine-configuration 2023-03-23 15:19:16 +07:00
Joshua A. Horton
b85087f392 chore(web): Merge branch 'master' into chore/web/update-feature-esmodule-for-configure-fix 2023-03-23 15:15:07 +07:00
Joshua A. Horton
2f9ab69b57 chore(common/web): Merge branch 'feat/common/web/mock-selections' into refactor/common/web/prediction-context 2023-03-20 12:54:21 +07:00
Joshua A. Horton
9ba71ab244 fix(common/web): mock text manip without cleared selection 2023-03-20 12:51:26 +07:00
Joshua A. Horton
de5354b843 change(web): modularizes ModelManager 2023-03-20 09:25:06 +07:00
Joshua A. Horton
8a13a4e64d change(web): webview context configuration + connections 2023-03-17 14:10:05 +07:00
Joshua A. Horton
7be31d0372 refactor(common/web): PredictionContext reuse on context change, postApplication cleanup 2023-03-17 14:09:48 +07:00
Joshua A. Horton
0e3d995a81 chore(common/web): simplification tweak for Mock cloning 2023-03-17 14:06:18 +07:00
Joshua A. Horton
e00f157150 feat(common/web): mock selection unit tests 2023-03-17 13:17:34 +07:00
Joshua A. Horton
0f754f9be7 feat(common/web): mocks may now model selected text 2023-03-17 12:48:07 +07:00
Joshua A. Horton
581babe503 chore(web/engine): Merge branch 'feature-esmodule-web-engine' into change/web/engine-configuration 2023-03-17 09:06:03 +07:00
Joshua A. Horton
7ee7c6c917 chore(web): Merge branch 'change/web/osk-and-key-event-integration' into change/web/keyboard-requisition 2023-03-17 08:44:46 +07:00
Joshua A. Horton
2c702f7b6d chore(web): Merge branch 'change/web/top-level-modularization-design' into change/web/osk-and-key-event-integration 2023-03-17 08:31:12 +07:00
Joshua A. Horton
cdbd347af2 change(common/web): defaultOutput -> defaultRules 2023-03-17 08:28:57 +07:00
Steven R. Loomis
f0cc2b56e6
Merge pull request #8436 from keymanapp/fix/developer-8069/todo2-epic-ldml 2023-03-14 21:51:08 -05:00
Steven R. Loomis
f7e5b114cf
Merge pull request #8412 from keymanapp/chore/resources-7042-cldr-update-202303-epic-ldml 2023-03-14 21:50:17 -05:00
Joshua A. Horton
ebf100260b change(web): handling of embed/webview cache busting 2023-03-15 08:26:35 +07:00
Marc Durdin
409b722eb6
Merge pull request #8426 from keymanapp/fix/common-8419
fix(common): fix broken common/web/types cases 🙀
2023-03-15 11:33:44 +11:00
Marc Durdin
8c519861d9
Merge pull request #8431 from keymanapp/chore/common/common-test-build-configurations
chore(common): add common test build configurations
2023-03-15 11:33:16 +11:00
Steven R. Loomis
f7499238a2 fix(core): ldml more TODO-LDML fixes 🙀
- drop some TODO-LDMLs, document others.

For: #8069
2023-03-14 18:54:28 -05:00
Steven R. Loomis
f92cd36125 chore(developer): ldml update compiler for updated spec 🙀
#7042
2023-03-14 17:38:30 -05:00
Steven R. Loomis
5c25bf429f fix(common): fix broken common/web/types cases
Fixes: #8419
2023-03-14 17:34:37 -05:00
Marc Durdin
a7cba84127 chore(common): add test action to common/web/utils 2023-03-15 05:16:33 +07:00
Joshua A. Horton
b34cdb9c84 chore(web): Merge branch 'change/web/osk-and-key-event-integration' into change/web/keyboard-requisition 2023-03-14 13:11:34 +07:00
Joshua A. Horton
208dd453c1 chore(web): Merge branch 'change/web/top-level-modularization-design' into change/web/osk-and-key-event-integration 2023-03-14 13:09:51 +07:00
Marc Durdin
0811282ccf chore(common): add common/web/build.sh, small cleanup 2023-03-14 13:05:27 +07:00
Joshua A. Horton
24c5ba3bec chore(web): Merge branch 'change/web/child-script-pattern' into change/web/top-level-modularization-design 2023-03-14 12:48:15 +07:00