Commit graph

1045 commits

Author SHA1 Message Date
Joshua Horton
2ac8a4503b
Merge branch 'master' into feature-esmodule-web-engine 2023-06-26 09:09:43 +07:00
dependabot[bot]
7d08b08fb2
chore(deps): bump semver from 7.3.8 to 7.5.2
Bumps [semver](https://github.com/npm/node-semver) from 7.3.8 to 7.5.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.3.8...v7.5.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-24 12:37:06 +00:00
Steven R. Loomis
248d423535 feat(common,developer,core): add uset section 🙀
- not emitted yet, basic scaffolding
- expanded type field in elem:  str/char/set

For: #7377
2023-06-20 18:23:54 -05:00
Joshua A. Horton
f35ba0973e chore(developer): kmc-model no longer needs to bundle a .cjs version for input-processor 2023-06-14 10:15:56 +07:00
Marc Durdin
3f6f11e1da
Merge pull request #8999 from keymanapp/fix/developer/8998-message-namespace-creep
fix(developer): keep kmc-kmn messages within namespace
2023-06-13 12:53:31 +10:00
Marc Durdin
cbc5b13034 fix(developer): keep kmc-kmn messages within namespace
Fixes #8998.

kmc-kmn messages were broken down into sub-namespaces, but the range
overlapped the reserved namespace mask range. Fixed the message values,
added a new test to the verifyCompilerMessagesObject function to verify
that messages don't creep outside their namespace, and defined new
masks (in CompilerErrorSeverity enum... hmm) to help.

I opted to remove the leading `0` in the messages for kmc-kmn as I had
to correct a number of them anyway, but not the messages in remaining
units at this time (it's not an error, but just slightly misleading as
we only have 12 bits, not 16 to play with).

It is safe to reassign these messages as they were only assigned in 17.0
alpha.
2023-06-13 06:22:15 +07:00
Marc Durdin
6db014224c chore(developer): enable hint message for non-Unicode source files 2023-06-12 12:00:48 +07:00
Marc Durdin
57af86ea9c chore(developer): support cp1252 'ansi' keyboards
Fixes #8955.

Adds a mapping table for CP1252 to USV so that we can compile very old
"ANSI"-encoded Keyman keyboard files with kmcmplib, to match kmcmpdll
support.
2023-06-12 11:43:29 +07:00
Marc Durdin
a25f8a723f
Merge pull request #8962 from keymanapp/refactor/developer/kmcmplib-error-code-patterns
refactor(developer): import kmcmplib errors into kmc-kmn
2023-06-12 12:20:10 +10:00
Steven R. Loomis
2d367756a8
Merge pull request #8967 from keymanapp/fix/developer-7377-codecleanup-transform-epic-ldml 2023-06-08 21:42:34 -05:00
Marc Durdin
38fde28165
Merge pull request #8695 from keymanapp/feat/developer-7377-transform-format-epic-ldml3
spec(core): spec/impl for transform and vars 🙀
2023-06-09 11:44:40 +10:00
Steven R. Loomis
4febfcb451 feat(developer): improve tran/bksp tests, other improvements 🙀
- delete dead code
- share common ID regex for vars
- move bksp/finl/order tests into tran

For: #7377
2023-06-08 18:39:44 -05:00
Steven R. Loomis
5cf025b62e
Merge pull request #8942 from keymanapp/feat/core-7377-transform-epic-ldml
feat(core): fixups to C++ side 🙀
2023-06-08 18:17:06 -05:00
Steven R. Loomis
4562b90502
Merge branch 'master' into feat/developer-7377-transform-format-epic-ldml3 2023-06-08 18:12:12 -05:00
Steven R. Loomis
26053a5ba3
Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-06-08 18:10:11 -05:00
Steven R. Loomis
9f9589b095 feat(developer): fix e2e test 🙀
- re-enable e2e
- fix basic.txt to match

tools (hextobin):
- support diff(block1,block2,divisor)
- document the comma rule

For: #7377
2023-06-08 13:29:15 -05:00
Marc Durdin
74b65e6486 refactor(developer): import kmcmplib errors into kmc-kmn
Fixes #8960.

Will need a further minor refactor in the future for kmc-kmw as it also
uses some of these same error codes.
2023-06-08 12:14:39 +07:00
Joshua Horton
f4ba29926d
chore(developer): apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-06-08 11:57:35 +07:00
Marc Durdin
7efed7e251 chore(developer): check for nodejs deps in kmc-kmn
Enables eslint checks for eslintNoNodeImports for kmc-kmn. Also enables
linting for kmc-model-info, but does not enable eslintNoNodeImports on
it at this time.

Relates to #8959.
2023-06-08 10:58:06 +07:00
Steven R. Loomis
c4e050e1f9 chore(developer): boost code coverage 🙀
- delete a file which is unused - ordr
- delete a file that was moved to common/web/types - pattern-parser
- update other lines to increase coverage

#7377
2023-06-07 14:14:41 -05:00
Marc Durdin
52a08ef21a
Merge pull request #8934 from keymanapp/chore/core/emscripten-location-tweaks
chore(core): look for emcc.py, not emcc
2023-06-07 12:17:35 +10:00
Joshua A. Horton
f1c07a2775 fix(developer): updates the internal KMW endpoints used by the test-host 2023-06-07 09:05:59 +07:00
Steven R. Loomis
b705f5430f feat(developer): temporarily skip e2e test 🙀
For: #7377
2023-06-06 10:19:03 -05:00
Steven R. Loomis
8548b0fd33 Merge remote-tracking branch 'upstream/master' into feat/developer-7377-transform-format-epic-ldml3 2023-06-06 09:45:21 -05:00
Joshua A. Horton
429889433f chore(developer): Merge branch 'feature-esmodule-web-engine' into chore/developer/web-reintegration 2023-06-06 15:18:22 +07:00
Joshua A. Horton
718ca50b23 chore(web): Merge branch 'master' into chore/web/feature-esmodule-a17s14-mid-update 2023-06-06 12:37:15 +07:00
Steven R. Loomis
70fcea815a feat(developer): tran support 🙀
- tran builder

For: #7377
2023-06-05 19:18:59 -05:00
Marc Durdin
044a14f1d9 chore(core): look for emcc.py, not emcc
Relates to #8913.
2023-06-06 07:07:07 +07:00
Steven R. Loomis
115e68b753 feat(developer): tran support 🙀
- test fixups, for dependencies

For: #7377
2023-06-05 18:54:10 -05:00
Marc Durdin
18a3ef36bc chore(developer): ensure kmcmplib messages are all UTF-8
Fixes #8887.
2023-06-05 15:46:40 +07:00
Marc Durdin
e96cd3af11
Merge pull request #8915 from keymanapp/chore/developer/8888-long-line-test
chore(developer): verify long lines compile correctly
2023-06-04 21:15:46 +10:00
Steven R. Loomis
2054eeb703 feat(developer): tran support 🙀
- support regex format for sets and unicodeSets
- support mapFrom and mapTo detection

For: #7377
2023-06-02 18:31:25 -05:00
Steven R. Loomis
4b81137a61 feat(developer): section dependencies 🙀
- fix test helper for dependencies
- moved VariableParser and MarkerParser into common

For: #7377
2023-06-02 16:58:39 -05:00
Steven R. Loomis
5d0d0746b5 feat(developer): section dependencies 🙀
- fix test helper for dependencies

For: #7377
2023-06-02 16:26:47 -05:00
Steven R. Loomis
dfe89e5425 feat(developer): messages 🙀
- fix message bug

For: #7377
2023-06-02 15:19:14 -05:00
Steven R. Loomis
9b177b2f00 feat(developer): section dependencies 🙀
- make explicit section dependencies, add a test

For: #7377
2023-06-02 15:19:00 -05:00
Marc Durdin
16675ef46b
chore: extend from test options in e2e test 2023-06-02 18:54:42 +10:00
Marc Durdin
0ec5c08b26 chore(common): move const url to class prop
We still have cjs modules that rely on the ldml-keyboard-xml-reader, and
this meant that an exported const was being calculated with an invalid
meta url, which crashed the cjs module require() call.
2023-06-02 12:28:13 +07:00
Marc Durdin
d7f22b186f chore(developer): verify long lines compile correctly
Fixes #8888.

Verifies that wrapped lines (ending in \) are handled correctly in
kmcmplib.
2023-06-02 12:01:58 +07:00
Marc Durdin
4e535832d8 chore: cleanup 2023-06-02 11:45:59 +07:00
Marc Durdin
b313272250 chore(common): remove url module ref from common/web/types
The url module is a node module. We need to move responsibility for
resolving the path of the LDML XML <import> statements out of
common/web/types, and into the ultimate consumer, so it's now surfaced
as an option, along with a helper constant that reports the
import.meta.url-relative base path of the standard imports that are
compiled into common/web/types.

This hopefully means we can use this module in both browser and node
contexts without trouble.
2023-06-02 11:38:17 +07:00
Marc Durdin
9a4345c736
Merge pull request #8908 from keymanapp/chore/developer/8885-error-check-loadFile-callback
chore(developer): loadFile callback error check and optimization
2023-06-02 13:21:04 +10:00
Marc Durdin
355b5f9085
Merge pull request #8907 from keymanapp/refactor/developer/8883-move-filename-consistency-check-to-kmc
refactor(developer): move filename consistency check to kmc
2023-06-02 13:20:57 +10:00
Marc Durdin
f762b31d01
Merge pull request #8899 from keymanapp/refactor/developer/8889-kmcmplib-interface-shuffle
refactor(developer): rearrange kmcmplib interface source
2023-06-02 13:20:50 +10:00
Marc Durdin
7301281247 chore(developer): loadFile callback error check and optimization
Fixes #8885.

Adds some optimization and error checking to the loadFile callback in
kmc-kmn. Also handles case of zero-byte bitmap file so we won't crash on
it.
2023-06-01 15:31:31 +07:00
Marc Durdin
c3458d040c refactor(developer): move filename consistency check to kmc
kmcmplib no longer has any filesystem access, so it cannot verify if a
referenced filename in a source file has the same case as the actual
filename on disk (a risk when moving projects between platforms). So
I opted to move this to the `loadFile` callback in kmc, which is the
only place where filesystem is actually accessed, and added
corresponding unit test.

Small additional fixes here:

1. Move from `Buffer` to `Uint8Array` in all kmc-* modules, so that we
   remove that barrier to running on web.
2. Use `callbacks.loadFile` instead of `callbacks.fs.readFileSync`, so
   that we can be sure to run the filename consistency check.
3. Fixed kps parser silently swallowing xml errors on load.
4. Added silent mode to NodeCompilerCallbacks so we could cleanly test
   the new filename consistency hint.
5. Noted a location where we still have NodeJS deps in kmc-ldml.
2023-06-01 15:11:38 +07:00
Joshua A. Horton
47f47a05c9 fix(developer): forgot a path component 2023-06-01 12:18:15 +07:00
Joshua A. Horton
0d814c65aa chore(developer): attempt #1 to fix dev build, KMW integration 2023-06-01 11:36:29 +07:00
Marc Durdin
c3ecae4e98 refactor(developer): rearrange kmcmplib interface source
Fixes #8889.

No code changes, just moves WASM interfaces into
CompilerInterfacesWasm.cpp, and CompileKeyboardHandle is renamed to
CompileKeyboardBuffer and moved into its own source file.
2023-06-01 05:29:19 +07:00
Marc Durdin
717b1eea98
chore: Apply code review suggestion
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2023-06-01 08:04:34 +10:00