Commit graph

42 commits

Author SHA1 Message Date
Marc Durdin
0741b88dc2 fix(web): crash on custom modifier keys
Fixes #6788.
Fixes KEYMAN-WEB-22.
Fixes KEYMAN-DEVELOPER-BQ.
Fixes KEYMAN-ANDROID-160.

Fixes a crash introduced in #6473 which was trying to prevent modifier
keys from triggering "fat finger" alternate lookups, due to incomplete
nullish coalescing.

Related to this, from what I can see, a secondary side-effect of the fix
in #6473 was that some key events may have never had their ruleBehaviors
finalized if they matched the `isOnlyLayerSwitchKey` heuristic, leading
to potential issues with edge case 'deadkey+layer switch' keys or keys
that set store values, for example. So this fix also makes the
`isOnlyLayerSwitchKey` test more targeted.

Identified this when adding a Caps Lock layer to sil_euro_latin and
testing the layer switching. At time of fix, the error had been raised
in KeymanWeb, Keyman Developer and Keyman for Android, but not yet
Keyman for iPhone and iPad.
2022-06-17 05:22:19 +10:00
Marc Durdin
20e79b7b3d
Merge pull request #6677 from keymanapp/chore/web/keyman-version-for-developer
chore(web): adapts keyman-version bundling in Developer products 🎡
2022-05-30 14:23:29 +10:00
jahorton
daa0fc9f93 chore(web): Merge branch 'chore/web/merge-web-version-environment' into chore/web/better-lm-worker-bundling 2022-05-30 09:06:45 +07:00
jahorton
8bc2908780 chore(web): Merge branch 'chore/web/fixup-unit-test-fixups' into chore/web/merge-web-version-environment 2022-05-30 08:53:11 +07:00
Marc Durdin
65c8c89be5 chore(web): adapts keyman-version bundling in Developer products
As KEYMAN-VERSION changed from being a type to a class, this broke the
bundling and referencing strategies in Developer/Server and
Developer/kmlmc. This updates the bundling process and fixes the
references in both projects.

Note that keyman-version no longer depends on gosh. Given we are
currently manually calling the build for this in all projects (or should
be!), it's better that we keep the build of this explicit for now.

If we want to restore the postinstall/postci steps in the future, the
gosh dependency would need to be manually removed from package.json in
order for the bundling builds to work for Developer/Server and
Developer/kmlmc.
2022-05-28 10:57:24 +10:00
jahorton
8d40a05664 fix(web): test reporting style... again 2022-05-27 13:07:51 +07:00
jahorton
97f7fbb68d fix(web): proper teamcity reporting of keyboard-processor tests 2022-05-27 12:29:21 +07:00
jahorton
0acffafddd fix(web): ensure keyboard-processor tests are run 2022-05-27 11:53:57 +07:00
jahorton
7b472ca686 chore(web): Merge branch 'chore/web/merge-web-version-environment' into chore/web/better-lm-worker-bundling 2022-05-27 10:31:43 +07:00
jahorton
3855a25d26 chore(web): Merge branch 'chore/web/fixup-unit-test-fixups' into chore/web/merge-web-version-environment 2022-05-27 10:30:16 +07:00
jahorton
de68654cf2 chore(web): Merge branch 'chore/web/no-more-lerna' into chore/web/fixup-unit-test-fixups 2022-05-27 10:28:30 +07:00
Marc Durdin
fcf78bcd94 chore: merge master into branch 2022-05-27 13:11:23 +10:00
Marc Durdin
ef86cd46d9 chore(web): revert temporary type patches
There were a few temporary type patches I had made earlier in the
refactor chain in order to get a build to pass. After completing the
refactor, I was able to return them to their more proper types.
2022-05-27 08:31:19 +10:00
Marc Durdin
c22e892e49 chore(web): revert PostMessage and ImportScripts types 2022-05-27 08:26:51 +10:00
Marc Durdin
566c7f12bd chore(web): reintroduce sourceRoot in tsconfig 2022-05-27 07:46:30 +10:00
jahorton
81fa5ce282 chore(web): addresses PR review 2022-05-24 10:45:34 +07:00
jahorton
ea74a7f2ce chore(web): adds direct keyman-version compile to many build.sh's 2022-05-24 10:11:57 +07:00
jahorton
3139b904f7 chore(web): includes a pre-rebase PR suggestion 2022-05-23 14:06:56 +07:00
jahorton
2d7d2c6ab1 chore(web): Wait, this worked!? Inclusion now in original project's build! 2022-05-23 13:57:06 +07:00
jahorton
2aa0b4445c chore(web): lm-worker "test stub" code elimination 2022-05-23 13:56:09 +07:00
jahorton
0489495e60 chore(web): declaration alias for module export use 2022-05-23 13:44:55 +07:00
jahorton
83097bb56d chore(web): merge new .bundled.json from new base 2022-05-23 13:44:53 +07:00
jahorton
f20759f26a chore(web): eliminates web-environment package 2022-05-23 13:40:29 +07:00
jahorton
8ed70118d5 chore(web): web sentry-manager conversion 2022-05-23 13:36:09 +07:00
jahorton
26c30f4204 chore(web): most web packages now use keyman-version 2022-05-23 13:35:19 +07:00
jahorton
e67633f872 chore(web): reverts input-processor demodularization from #6597, #6622 2022-05-23 13:25:55 +07:00
jahorton
60cdd7f3bb chore(web): reverts keyboard-processor demodularization from #6597 2022-05-23 13:04:43 +07:00
Marc Durdin
7e5cd7a137 chore(web): chmod +x 2022-05-18 07:21:47 +10:00
Marc Durdin
be51c1b692 chore(web): chmod +x 2022-05-18 06:44:30 +10:00
Marc Durdin
05a4c33200 chore(web): move common/core/web to common/web
Relates to #5816.

Moves folders under common/core/web to common/web:

* input-processor -> common/web/input-processor
* keyboard-processor -> common/web/keyboard-processor
* tools/recorder -> common/web/recorder
* tools/sentry-manager -> common/web/sentry-manager
* utils -> common/web/utils

Updates scripts and configuration to point to new folders.
2022-05-18 06:01:03 +10:00
Marc Durdin
dfd5fad2c7 chore(common): move common/core/web to common/web and flatten 2022-05-17 11:15:22 +10:00
Marc Durdin
833dde0ae4 chore: remove unnecessary package-lock.json files 2022-05-16 14:47:58 +10:00
Marc Durdin
1f708d06de chore(web): build.sh +x 2022-05-16 08:45:45 +10:00
Marc Durdin
af44c0687f chore(web): move web-environment to common/web 2022-05-16 08:29:46 +10:00
Marc Durdin
41bd9069ad chore(web): fixup lmlayer test paths 2022-05-13 09:52:08 +10:00
Marc Durdin
8efcb5d64a chore(web): embedded web cleanup 2022-05-12 07:37:10 +10:00
Marc Durdin
08ec9a5565 chore(web): +x for build.sh 2022-05-10 12:58:02 +10:00
Marc Durdin
bb07ab7eee chore(web): make build paths consistent 2022-05-04 10:13:44 +10:00
Marc Durdin
575250f1d9 chore(web): remove unneeded deps 2022-04-17 06:58:24 +10:00
Marc Durdin
0fbf53f8d7 chore(web): move version from package.json to keyman-version package
Starts to resolve the chaos of putting version numbers into every
package.json file.

Adds a new keyman-version package which mimics the
version information in build-utils.sh. This will eventually replace
resources/web-environment.

Fixes the build for the lexical model compiler tools to remove refs to
package.json version and use keyman-version instead.

More fixes coming in a follow-up.
2022-04-17 06:47:39 +10:00
Marc Durdin
2f2d3c72c9 chore(web): move lm-worker into its own folder
This starts the reorg required for splitting the lm worker into its own
module. Tests are still not working. But builds are going.

Some decisions to be made around the final path for wrapping of the
code. I think it may be possible to do something a whole lot more
elegant by moving the wrapping process into the KMW build and leaving
the LM Worker output as a pure tsc output -- given only KMW wants the
wrapped worker anyway (tests aside). The actual wrapping code could
still be in the lm-worker folder.
2022-04-14 15:33:23 +10:00
Marc Durdin
4d94786852 chore(web): replace lerna with npm workspaces and ts projects
Fixes #6320.

Part 1 of moving from lerna to a simpler, maintained monorepo solution,
using TypeScript Projects and NPM Workspaces.

There is more work to be done here. At this point, KeymanWeb builds and
runs without errors, but the built file is substantially different,
mostly in include order.

Using TypeScript Projects, we move away from the need to run build
scripts in various locations for almost all the Typescript modules.

TODO: Embedded versions and tests have not been verified.

TODO: developer/server is not yet verified.

TODO: developer/js (needs a rename!) is not yet verified.

TODO: Currently, the predictive-text folder needs refactoring to move
the construction of the worker wrapper out of the Predictive Text build
and into the final assembly of keymanweb.js (as it should be valid to
run it as a separate .js anyway).

TODO: Most of the `<reference>` paths need to be re-verified. Ideally
there should be no references outside the current module for any given
.ts.

TODO: The embedded vs browser vs node (headless) builds should be tidied
up for consistency so that it's obvious what depends on what. This is
currently messiest in the predictive-text folder, where the output names
diverge from the filenames and the various files are mixed in the same
folder (as evidenced by the exclusions listed in each tsconfig.json).

TODO: `npm install` should be removed from most build scripts and
instead `npm ci` (#6196) should be run only once from the top-level
folder for any given build. I've had eliminated side-effects from the
`install` action for npm, which makes it easier to reason about state.

TODO: verify_npm_setup and related functions can probably be eliminated.

TODO: most of the build scripts should be largely eliminated for web.

TODO: several ts projects use inconsistent output folders.

TODO: it may be possible to generate a .d.ts for models/types so that
we can use a consistent reference for those as well.

TODO: build.sh, tsconfig.json should always be in the module's top-level
folder, not in a subfolder such as src (e.g. see input-processor/src,
keyboard-processor/src, web/source).

TODO: resources/web-environment should be in common/web.

TODO: other js node_modules imports should be wrapped like es6-shim.

TODO: fix up the publish code for npm modules

TODO: eliminate version numbers from package.json if possible?

Whew, that's most of the stuff I noticed!
2022-04-12 21:02:33 +10:00