Commit graph

303 commits

Author SHA1 Message Date
dependabot[bot]
b7b70a0eaf
chore(deps): bump cross-spawn from 7.0.3 to 7.0.6
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-22 08:51:07 +00:00
Marc Durdin
d68a64252e feat(developer): add GitHub and Cloud support to kmc-copy
This requires a significant refactor to the compiler interfaces to allow
for asynchronous filesystem and network access. For now, only kmc-copy
uses the asynchronous interfaces, but over time we may try and
consolidate them where other compiler modules find them useful. This
adds a big set of unit test fixtures to avoid network instability in
tests (the fixtures can be regenerated by setting environment variable
`TEST_SAVE_FIXTURES`).
2024-10-28 10:33:42 +07:00
Marc Durdin
7d17913e18 feat(developer): seed kmc-copy 2024-10-22 10:28:00 +07:00
Marc Durdin
0d9688451d
Merge branch 'master' into feat/developer/kmc-generate 2024-10-11 03:26:54 +02:00
Marc Durdin
76ebb5b02b
Merge branch 'master' into feat/common/12347-check-markdown-links 2024-10-09 05:16:31 +02:00
Marc Durdin
2e059e9730
Merge branch 'master' into feat/common/12347-check-markdown-links 2024-10-07 09:41:45 +02:00
Steven R. Loomis
3e168aafb2 chore(developer,common): deps: xml2js / fast-xml-parser
- remove vendored xml2js
- add fast-xml-parser@4.5.0
- Rewire the KeymanXMLReader / KeymanXMLWriter to use fast-xml-parser

Four small changes to the test data on the generated .kvks:
- allow &quot; for XML generation (" is legal)
- use the same XML prologue as the actual .kvks files.
- treat <key></key> as <key/> since we can't distinguish
  (removed a "_": "" entry)
- remove whitespace because we now can ("_": "\n  \n \n") on non-leaf nodes.
  This is ignored by the kvks code, but was difficult to maintain roundtrip.

Fixes: #12208
2024-10-03 08:34:24 -05:00
Marc Durdin
10e4bba100
Merge branch 'master' into feat/developer/kmc-generate 2024-09-26 18:55:20 +02:00
Marc Durdin
640d3e5096 test(developer): add markdown link check test for product documentation
Adds check-markdown package that parses .md files, looks for links and
images, and verifies that they are valid links (for internal links).
2024-09-25 15:51:32 -07:00
dependabot[bot]
e35bb72a44
chore(deps-dev): bump rollup from 4.16.4 to 4.22.4
Bumps [rollup](https://github.com/rollup/rollup) from 4.16.4 to 4.22.4.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.16.4...v4.22.4)

---
updated-dependencies:
- dependency-name: rollup
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-24 00:37:34 +00:00
Marc Durdin
6b83589987
Merge pull request #12402 from keymanapp/fix/developer/12395-rewrite-ldml-visual-keyboard-compiler
fix(developer): rewrite ldml visual keyboard compiler
2024-09-17 00:40:15 +02:00
Marc Durdin
bf25a6ee56
Merge pull request #12396 from keymanapp/dependabot/npm_and_yarn/express-4.20.0
chore(deps): bump express from 4.19.2 to 4.20.0
2024-09-14 03:39:35 +02:00
Eberhard Beilharz
fc32f02dc9
Merge pull request #12400 from keymanapp/chore/web/testexplorer
chore(web): allow to run unit tests in vscode test explorer
2024-09-12 14:07:55 +07:00
Marc Durdin
8424cb9349
Merge branch 'master' into feat/developer/kmc-generate 2024-09-12 08:18:37 +02:00
Marc Durdin
e4017a8c28 fix(developer): rewrite ldml visual keyboard compiler
The visual keyboard compiler was never finished in 17.0. This rewrites
it to:

1. Use the kmxplus data rather than reading from xml directly
2. Fill in `visualkeyboard.header.kbdname`
3. Support modifiers
4. Handle encoded characters like `\u{1234}`
5. Handle string variables like `${one}`*

Additional unit tests have been added to verify the behavior of the
visual keyboard compiler in more detail.

TODO-LDML: string variables appear to have a secondary bug -- they seem
to be returning the string 'undefined'. I have disabled the related
tests and will examine this separately, and enable those tests once
fixed.

TODO-LDML: we should probably add a compiler warning + unit test for
`<layers formId="us"><layer id="base">`, because this pattern does not
make sense: when using non-touch forms, the `<layer>` element should use
`modifiers` attribute, and correspondingly, `modifiers` attribute should
_not_ be used when `formId` is `touch`.

Other fixes:

1. The LDML XML reader was relying on its input being a Node.js `Buffer`
   even though it was declared `Uint8Array`, as it implicitly used
   `Buffer.toString()` to do text conversion. (`Buffer` subclasses from
   `Uint8Array`). This breaks when using `Uint8Array` directly and means
   we had an implicit dependency on Node.js. See also #12331.
2. XML errors were not captured in the LDML XML reader. See also #12331.
3. The unused and unfinished touch-layout-compiler.ts and
   keymanweb-compiler.ts have been removed along with corresponding unit
   tests and fixtures. These are replaced by Core implementations; see
   #12291.

Fixes: #12395
2024-09-12 06:06:00 +07:00
Eberhard Beilharz
95f36acb68
chore(web): allow to run unit tests in vscode test explorer
#11746 removed the `ts-node` dependency. Unfortunately that broke running
TypeScript test files with Mocha in VSCode Test Explorer because it no
longer knows what to do with .ts files. This change adds the more modern
`tsx` package as developer dependency, which allows to use Test Explorer
again.

See https://stackoverflow.com/a/77609121.
2024-09-11 19:28:33 +02:00
Eberhard Beilharz
b20d7f1eb4
refactor(web): move sentry-manager → web/src/engine/sentry-manager
Move `common/web/sentry-manager` to `web/src/engine/sentry-manager`.

Fixes: #12387
2024-09-11 15:15:01 +02:00
dependabot[bot]
094aa985b2
chore(deps): bump express from 4.19.2 to 4.20.0
Bumps [express](https://github.com/expressjs/express) from 4.19.2 to 4.20.0.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.20.0)

---
updated-dependencies:
- dependency-name: express
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-11 07:18:39 +00:00
Eberhard Beilharz
a6d2d02e61
refactor(web): move common/web/utils to web/src/engine/common/web-utils/
Fixes:#12025
2024-09-10 18:12:46 +02:00
Eberhard Beilharz
a9b9c4d016
refactor(web): move common/models to web/src/engine/predictive-text
Fixes: #12133
2024-09-10 17:45:22 +02:00
Eberhard Beilharz
91bbc250a8
refactor(web): move model/templates to web/src/engine/predictive/text
Part-of: #12133
2024-09-10 17:10:12 +02:00
Marc Durdin
4a2e6fd0a5 test(developer): add unit test for generate module 2024-09-10 10:54:22 +07:00
Eberhard Beilharz
c3e587193e
refactor(web): move model/types to web/types
Part-of: #12133
2024-09-09 19:59:01 +02:00
Marc Durdin
95d169f879 chore(developer): add developer-utils dep for kmc-generate 2024-09-09 09:17:32 +07:00
Marc Durdin
113b4f7ac8 feat(developer): comments for kmc-generate 2024-09-03 06:20:34 +07:00
Marc Durdin
1ab1ca5d78 chore(developer): fixup tests and scripts for kmc-generate 2024-09-03 06:20:34 +07:00
Marc Durdin
939134a9a3 feat(developer): kmc-generate module
Plenty of todo items left but this is a mostly-functional module for the
kmc generate command for automatically creating keyboard and model
projects.
2024-09-03 06:15:33 +07:00
Eberhard Beilharz
e788bf5077
fix(web): enable tests to run on Ubuntu 24.04 Noble
Previously running the tests failed because it couldn't find ICU 70 when
running webkit. Ubuntu 24.04 Noble comes with ICU 74. Updating
playwright to 1.46 fixes this.
2024-08-26 16:22:15 +07:00
Eberhard Beilharz
b1fb8122c2
refactor(web): move gesture-processor tests under web/src/test
`gesture-processor/src/test/auto/browser/web-test-runner.config.mjs`
run the tests on iOS and Android. However, if we enable these browsers
in `web/src/test/auto/dom/web-test-runner.config.mjs` we get failing
tests in osk, therefore these browsers are commented for now.
2024-08-26 15:29:22 +07:00
Eberhard Beilharz
7dabd30cae
refactor(web): move gesture-recognizergesture-processor
Moves `common/web/gesture-recognizer/` →
`web/src/engine/osk/gesture-processor`.

Fixes: #12151
2024-08-26 15:29:21 +07:00
Eberhard Beilharz
3c14a6ec0a
Merge pull request #12150 from keymanapp/refactor/web/12148_worker-thread
refactor(web): move `lm-worker` → `worker-thread` 🏗️
2024-08-19 10:10:11 +02:00
Eberhard Beilharz
ac0f4f6a83
refactor(web): run npm install
Addresses code review comments
2024-08-19 10:08:36 +02:00
Marc Durdin
40d5cb92c1
Merge pull request #12118 from keymanapp/dependabot/npm_and_yarn/75lb/deep-merge-1.1.2
chore(deps-dev): bump @75lb/deep-merge from 1.1.1 to 1.1.2
2024-08-19 14:07:49 +10:00
Eberhard Beilharz
ea62ac23e7
refactor(web): move lm-workerworker-thread
Move `common/web/lm-worker/` →
`web/src/engine/predictive-text/worker-thread/`.

Fixes: #12148
2024-08-16 08:35:20 +02:00
Eberhard Beilharz
78857d96c9
refactor(web): move lm-message-typespredictive-text/types
Moves `common/web/lm-message-types/` →
`web/src/engine/predictive-text/types/`

Fixes: #12147
2024-08-16 08:31:21 +02:00
Eberhard Beilharz
b9aa9ccd8c
refactor(web): move predictive-textworker-main
This moves `common/predictive-text/` →
`web/src/engine/predictive-text/worker-main/`.

This also moves `common/test/predictive-text/` →
`web/src/test/manual/predictive-text/`. Note though that this testing
tool is still broken.

Fixes: #12134
2024-08-15 12:26:50 +02:00
Eberhard Beilharz
d640dbe6ec
Merge branch 'master' into refactor/web/12110_keyboard
# Conflicts:
#	package-lock.json
2024-08-15 08:30:59 +02:00
Eberhard Beilharz
46ecfd4466
refactor(web): move remaining parts of keyboard-processorkeyboard
move parts of `common/web/keyboard-processor/` →
`web/src/engine/keyboard/`.

Fixes: #12110
2024-08-12 19:40:15 +02:00
Marc Durdin
c1d3fea8ea chore(developer): add eventemitter3 copy to Server build 2024-08-12 20:17:51 +08:00
Marc Durdin
a887015583 refactor(developer): add extra deps for Server
The way that Server is built for local distribution does not currently
handle transitive dependencies for @keymanapp dependencies well. So,
this adds four dependencies from @keymanapp/developer-utils to Server so
that they will be available in the packaged deployment.

A future improvement could be to package developer-utils using npm
packaging tools, but these struggled with bundling monorepo dependencies
in the past also.
2024-08-12 11:13:22 +07:00
Marc Durdin
2814ac995c chore(developer): include common-types dep in developer-utils 2024-08-12 06:08:56 +07:00
Marc Durdin
d93f10ae3a refactor(developer): use npm or local source for server addons instead of github references
Brings trayicon source into the repository, as the source repo appears
to be dead. Updates console source to latest version on npm.

Fixes: #12077
2024-08-12 06:08:51 +07:00
Eberhard Beilharz
faacf9de8a
refactor(web): Move common/web/recorderweb/src/tools/testing/recorder-core
Fixes: #12091
2024-08-08 16:34:01 +02:00
Marc Durdin
d55558fb31
Merge pull request #12101 from keymanapp/refactor/common/9665-move-xml2js-and-related-deps-to-developer
refactor(common): move xml2js and related deps to @keymanapp/developer-utils 🐉
2024-08-07 15:16:07 +10:00
Marc Durdin
ed143fb333
Merge branch 'master' into refactor/common/9665-move-ldml-keyboard-source-file-to-developer 2024-08-07 15:15:04 +10:00
Marc Durdin
ec72245575
Merge pull request #11765 from keymanapp/refactor/common/9665-move-keyman-touch-layout-file-to-developer
refactor(common): move .keyman-touch-layout reader/writer to @keymanapp/developer-utils 🐉
2024-08-07 15:14:06 +10:00
dependabot[bot]
88c538160a
chore(deps-dev): bump @75lb/deep-merge from 1.1.1 to 1.1.2
Bumps [@75lb/deep-merge](https://github.com/75lb/deep-merge) from 1.1.1 to 1.1.2.
- [Commits](https://github.com/75lb/deep-merge/compare/v1.1.1...v1.1.2)

---
updated-dependencies:
- dependency-name: "@75lb/deep-merge"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-07 05:13:47 +00:00
Marc Durdin
e9d054ab2c
Merge branch 'master' into refactor/common/9665-move-kvk-file-to-developer 2024-08-07 15:13:41 +10:00
Eberhard Beilharz
d608321566
Merge pull request #12066 from keymanapp/chore/web/12054_input-processor
chore(web): move `common/web/input-processor/` → `web/src/engine/main/` 🏗️
2024-08-06 09:05:59 +02:00
Marc Durdin
edf47d7f43 refactor(common): move xml2js and related deps to @keymanapp/developer-utils
Fixes: #9665
2024-08-06 05:19:30 +07:00