In order to maintain roughly the current build artifact size, strip out
the unfinished core integration from what we merge with preflight.
Test-bot: skip
Build-bot: release:android,ios,developer,web
The command shortcuts that were used by Web
scripts to create bundles via `esbuild` were not
properly handling the $KEYMAN_ROOT path when it
contained a space. These changes will rectify
this behavior and permit builds for such cases.
Build-bot: skip build:web
Test-bot: skip
This change stubs out `KMXKeyboard.isRTL` and adds a unit test for RTL
with .js and .kmx (currently skipped) keyboards. Also change some code
to use `Keyboard` instead of `JSKeyboard` and stub out additional methods.
The RTL functionality will have to be completed when the necessary
extensions to the Core API are implemented (#15482).
Fixes: #15288
Test-bot: skip
This makes the `options` parameter in the `JSKeyboardProcessor`
constructor no longer optional.
Also `baseLayout` and `defaultOutputRules` are now required in
`ProcessorInitOptions`.
For testing purposes we export `DEFAULT_OPTIONS` in a testing endpoint.
Test-bot: skip
Addresses code review comment: `Worker` is a generic and semi-reserved
name that we should not be stepping on.
This renames it to `WebWorker` instead of the suggested `LMWorker` or
`PredictiveTextWorker`. `WebWorker` is a name that was already used
in a few places and seems to better match: there is a corresponding
class for running with node. Naming it `WebWorker` makes it clearer
that this is the corresponding class when running in the browser.
The corresponding class for running under node was renamed to `NodeWorker`.
Test-bot: skip
refactor(web): rename target and mock variables and functions
This change renames `target` and `mock` variables that identify a text store. Similarly it renames functions with `Target` in the name.
Follow-up-of: #15092
refactor(web): change `preInput` to `SyntheticTextStore`
`preInput` always contains a `SyntheticTextStore`, so this change modifies the type of the property so that we don't have to always cast it.
Follow-up-of: #15092
This change renames `target` and `mock` variables that identify a
text store. Similarly it renames functions with `Target` in the name.
Follow-up-of: #15092
Test-bot: skip
`preInput` always contains a `SyntheticTextStore`, so this change modifies
the type of the property so that we don't have to always cast it.
Follow-up-of: #15092
Test-bot: skip
This change moves the core adapter to core-adapter module which contains
the code to bind to the the WASM core binaries and adds additional type
definitions for Core.
Part-of: #13926
Test-bot: skip
Browser extensions can dynamically insert scripts into a web page, so
it's possible that the last script is not what we expected, which
can cause the path to the script to be wrong. This change fixes the
determination of the default path by using the `document.currentScript`
property. It also replaces the use of the deprecated `substr` function
in those places.
Cherry-pick-of: #15159Fixes: #15158
Test-bot: skip
fix(web): improve determination of default path
Browser extensions can dynamically insert scripts into a web page, so it's possible that the last script is not what we expected, which can cause the path to the script to be wrong. This change fixes the determination of the default path by using the `document.currentScript` property. It also replaces the use of the deprecated `substr` function in those places.
Fixes: #15158
Browser extensions can dynamically insert scripts into a web page, so
it's possible that the last script is not what we expected, which
can cause the path to the script to be wrong. This change fixes the
determination of the default path by using the `document.currentScript`
property. It also replaces the use of the deprecated `substr` function
in those places.
Fixes: #15158
Test-bot: skip
Use `builder_launch` to launch other builder scripts rather than calling
directly, so that inheritable state and options are passed through.
Test-bot: skip
* Simplify the build dependency / child tree
* Split building and testing tooling so we don't rebuild components
* Fixup expected outputs to avoid repeated builds of components
* Remove unused dependency references
* Move test.sh targets into build.sh, so that testing doesn't lose
dependency tracking and cause unnecessary rebuilds. (Note that I have
not yet deleted test.sh.)
* Make predictive-text a direct child of engine, so that we don't build
it twice (or even more times)
Test-bot: skip
sentry-manager is used by Keyman Engine for Android and Keyman Engine
for iOS, but not directly by KeymanWeb, nor does it have any
dependencies on /web. So it does not make sense to keep it under /web.
es-bundling is used by sentry-manager and potentially other /common/web
tools in the future, so moving it under /common/tools makes it more
consistent in the future.
This is part of simplifying the web source tree; these changes do not
make significant build performance differences at this time.
Test-bot: skip
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