In order to simplify and make the build significantly faster, as well as
reduce duplication of configuration files, we have merged most of the
engine modules into a single module, engine:
* engine/attachment
* engine/core-processor
* engine/dom-utils
* engine/element-wrappers
* engine/events
* engine/interfaces
* engine/js-processor
* engine/keyboard
* engine/keyboard-storage
* engine/main
* engine/osk
A few test-specific files have been moved from engine to test, such as
nodeCloudRequester.ts and nodeKeyboardLoader.ts.
This change moves
- deadkeys.ts
- mock.ts
- outputTargetBase.ts
- stringDivergence.ts
OutputTarget is the same regardless of whether it's a JS or KMX keyboard.
Consolidates the node-related script functions into node.inc.sh, as part
of cleaning up the build scripts and making them easier to maintain into
the future.
Fixes: #14447
Clarifies the confusing builder.inc.sh / build-utils.sh distinction by
giving the scripts more appropriate names. Most build scripts should use
builder-full.inc.sh; some helper scripts can use builder-basic.inc.sh.
Documented in resources/build/README.md.
Renames:
* resources/build/builder.inc.sh to resources/build/builder-full.inc.sh
* resources/build/build-utils.sh to resources/build/builder-basic.inc.sh
Other changes:
* Moves Android-specific functions out of builder-basic.inc.sh and into
android/build.sh.
* Renames functions in builder-basic.inc.sh
More functions may be moved from builder-basic.inc.sh into utils.inc.sh
or other scripts in the future.
Fixes: #14065
Build-bot: build all
Test-bot: skip
Adds documentation for various functions, removes unused functions (a
couple of simple, very lightly used functions were unDRYed; these could
go back the other way across all shell scripts if necessary). TODO items
noted for follow-up refactoring.
Fixes: #14275
Relates-to: #14269
Build-bot: build all
Test-bot: skip
Previously the builder scripts defined a readonly `VERSION` environment
variable for the Keyman version. That caused problems when another
(external) script tried to define a `VERSION` variable. We encountered
this problem when trying to move the TC build steps of a configuration
into a single script (#13399) when we tried to source `~/.nvm/nvm.sh`.
This change uses a Keyman specific prefix for the version variables and
renames `VERSION` → `KEYMAN_VERSION` etc. Unfortunately these variables
are used in a lot of places, so this turned out to be a bit of a yak
shave.
Test-bot: skip
A few cases weren't properly handled, while a few others simply weren't called by the top-level script. This PR seeks to make the top-level clean action able to fully clean all built components, perhaps save for sample and test pages.
Test-bot: skip
The `Keyboard` class can be either a JS or KMX keyboard. Also make use
of the `Keyboard` class where it makes sense and add TODOs in the places
that still need to be implemented for KMX keyboard support.
The previous approach with overriding `onload` no longer works if we use
indirect eval. However, since we now need to use a server anyways instead
of directly loading a file (because of Core), we can add a timeout to
the test server and implement this test in a cleaner way.
- add temporary function to Core for this POC
- add new CoreProcessor to access Keyman Core WASM
- add unit tests for new core processor
- add code to KeymanEngine and InputProcessor to load the new CoreProcessor
- add web server to manual tests and new action `start` to build script
This change requires the manual tests to be loaded from a web server
instead of loaded as file, because otherwise the wasm code won't be
loaded.
Currently we always load CoreProcessor. This should be improved in a future
change to only load when it is actually needed.
Part-of: #11293
Move parts of `common/web/keyboard-processor/` →
`web/src/engine/js-processor/`.
Note this temporarily disable tests for keyboard-processor which depend on
js-processor, until #12110 is fixed.
Fixes: #12067