mirror of
https://github.com/keymanapp/keyman.git
synced 2026-10-07 22:47:29 +00:00
chore(developer): Merge branch 'master' into fix/developer/11833-index-requires-comma-between-parameters-in-kmcmplib-compiler
This commit is contained in:
commit
2a477c6d47
225 changed files with 6244 additions and 733 deletions
6
.github/labeler.yml
vendored
6
.github/labeler.yml
vendored
|
|
@ -20,10 +20,8 @@ common/:
|
|||
- common/**
|
||||
- resources/**
|
||||
|
||||
common/models/: common/models/**
|
||||
common/models/types/: common/models/types/**
|
||||
common/models/templates/: common/models/templates/**
|
||||
common/models/wordbreakers/: common/models/wordbreakers/**
|
||||
common/models/templates/: web/src/engine/predictive-text/templates/**
|
||||
common/models/wordbreakers/: web/src/engine/predictive-text/wordbreakers/**
|
||||
|
||||
common/resources/: resources/**
|
||||
common/web/: common/web/**
|
||||
|
|
|
|||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -183,4 +183,3 @@ lcov.info
|
|||
/keyman*.buildinfo
|
||||
/keyman*.changes
|
||||
/keyman*.tar.?z
|
||||
|
||||
|
|
|
|||
42
HISTORY.md
42
HISTORY.md
|
|
@ -1,5 +1,24 @@
|
|||
# Keyman Version History
|
||||
|
||||
## 18.0.109 alpha 2024-09-11
|
||||
|
||||
* chore(common): Update history with 17.0.329 stable (#12394)
|
||||
* refactor(web): move `model/templates` to `web/src/engine/predictive/text` (#12382)
|
||||
* refactor(web): move `common/models` to `web/src/engine/predictive-text` (#12383)
|
||||
* refactor(web): move `common/web/utils` to `web/src/engine/common/web-utils/` (#12384)
|
||||
|
||||
## 18.0.108 alpha 2024-09-10
|
||||
|
||||
* docs(android): Update help docs (#12367)
|
||||
* fix(developer): fix building with Ubuntu 24.04 (#12379)
|
||||
* refactor(android): Move build-publish.sh to builder script (#12351)
|
||||
* fix(android): Separate `publishSentry` Gradle task to publish symbols to Sentry (#12358)
|
||||
* refactor(web): move `model/types` to `web/types` (#12370)
|
||||
|
||||
## 18.0.107 alpha 2024-09-09
|
||||
|
||||
* fix(android): Update Text Size menu icons for RTL support (#12290)
|
||||
|
||||
## 18.0.106 alpha 2024-09-06
|
||||
|
||||
* feat(windows): add right modifier included in hotkey optional functionality (#12259)
|
||||
|
|
@ -759,6 +778,29 @@
|
|||
* chore(common): move to 18.0 alpha (#10713)
|
||||
* chore: move to 18.0 alpha
|
||||
|
||||
## 17.0.329 stable 2024-09-09
|
||||
|
||||
* chore(android,ios): Add ojibwa ifinal/rdot keyboards to FirstVoices (#12020)
|
||||
* change(web): revert #11174, which loads keyboards before initializing the OSK (#12040)
|
||||
* fix(web): unrevert #11258, leaving OSK hidden before instructed to display (#12058)
|
||||
* chore(common): use `nvm` to select version of node for builds (#12074)
|
||||
* fix(developer): ignore scan code if zero in debugger (#12182)
|
||||
* fix(developer): enforce presence of Version field when FollowKeyboardVersion is not set, in package compiler (#12206)
|
||||
* fix(developer): enforce presence of kps Info.Description field in info compilers (#12207)
|
||||
* fix(web): disable fat-finger data use when mayCorrect = false (#12226)
|
||||
* chore(common): allow build agents to automatically select emsdk version, and enable support for 3.1.60+ (#12245)
|
||||
* fix(web): fix documentation-keyboard spacebar-text scaling (#12240)
|
||||
* fix(core): set mac build version for meson cli build to 10.13 (#12246)
|
||||
* change(ios): defer registration of fonts past initialization (#12241)
|
||||
* chore(android,ios): Update FirstVoices keyboards to 12.15 (#12301)
|
||||
* fix(core): properly support 'other' modifier state with `uint32_t` type (#12285)
|
||||
* fix(developer): find last matching key in LDML key bag when building KVK (#12284)
|
||||
* fix(android): check in material-stepper as internal Maven dependency (#12324)
|
||||
* fix(linux): add `keymanFacename` to .ldml file (#12283)
|
||||
* chore(oem/fv): Update to fv_all 13.0 (#12363)
|
||||
* fix(mac): avoid crash on startup with macOS 10.15 (Catalina) (#12364)
|
||||
* fix(android): skip language counts for lexical-model packages (#12368)
|
||||
|
||||
## 17.0.328 stable 2024-07-27
|
||||
|
||||
* fix(web): add nullish test in setOsk (#12041)
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
18.0.107
|
||||
18.0.110
|
||||
|
|
@ -10,6 +10,8 @@ THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
|
|||
. "$KEYMAN_ROOT/resources/build/build-help.inc.sh"
|
||||
. "$KEYMAN_ROOT/resources/build/build-download-resources.sh"
|
||||
|
||||
. "$KEYMAN_ROOT/android/KMAPro/build-play-store-notes.inc.sh"
|
||||
|
||||
# ################################ Main script ################################
|
||||
|
||||
# Definition of global compile constants
|
||||
|
|
@ -25,6 +27,7 @@ builder_describe "Builds Keyman for Android app." \
|
|||
"configure" \
|
||||
"build" \
|
||||
"test Runs lint and unit tests." \
|
||||
"publish Publishes symbols to Sentry and the APK to the Play Store." \
|
||||
"--ci Don't start the Gradle daemon. For CI" \
|
||||
"--upload-sentry Upload to sentry"
|
||||
|
||||
|
|
@ -109,3 +112,13 @@ if builder_start_action test; then
|
|||
|
||||
builder_finish_action success test
|
||||
fi
|
||||
|
||||
if builder_start_action publish; then
|
||||
# Copy Release Notes
|
||||
generateReleaseNotes
|
||||
|
||||
# Publish symbols and Keyman for Android to Play Store
|
||||
./gradlew $DAEMON_FLAG publishSentry publishReleaseApk
|
||||
|
||||
builder_finish_action success publish
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -105,12 +105,17 @@ android {
|
|||
}
|
||||
|
||||
// how to configure the sentry android gradle plugin
|
||||
sentry {
|
||||
// Disables or enables the automatic configuration of Native symbols
|
||||
uploadNativeSymbols = true
|
||||
task publishSentry {
|
||||
doLast {
|
||||
println 'Publishing Keyman symbols to Sentry'
|
||||
sentry {
|
||||
// Disables or enables the automatic configuration of Native symbols
|
||||
uploadNativeSymbols = true
|
||||
|
||||
// Does or doesn't include the source code of native code for Sentry
|
||||
includeNativeSources = true
|
||||
// Does or doesn't include the source code of native code for Sentry
|
||||
includeNativeSources = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String env_keys_json_file = System.getenv("keys_json_file")
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ JUNIT_RESULTS="##teamcity[importData type='junit' path='keyman\android\KMEA\app\
|
|||
|
||||
builder_describe "Builds Keyman Engine for Android." \
|
||||
"@/web/src/app/webview" \
|
||||
"@/common/web/sentry-manager" \
|
||||
"@/web/src/engine/sentry-manager" \
|
||||
"clean" \
|
||||
"configure" \
|
||||
"build" \
|
||||
|
|
@ -84,7 +84,7 @@ if builder_start_action build:engine; then
|
|||
cp "$KEYMAN_WEB_ROOT/build/app/resources/osk/keymanweb-osk.ttf" "$ENGINE_ASSETS/keymanweb-osk.ttf"
|
||||
|
||||
cp "$KEYMAN_ROOT/node_modules/@sentry/browser/build/bundle.min.js" "$ENGINE_ASSETS/sentry.min.js"
|
||||
cp "$KEYMAN_ROOT/common/web/sentry-manager/build/lib/index.js" "$ENGINE_ASSETS/keyman-sentry.js"
|
||||
cp "$KEYMAN_ROOT/web/src/engine/sentry-manager/build/lib/index.js" "$ENGINE_ASSETS/keyman-sentry.js"
|
||||
|
||||
echo "Copying es6-shim polyfill"
|
||||
cp "$KEYMAN_ROOT/node_modules/es6-shim/es6-shim.min.js" "$ENGINE_ASSETS/es6-shim.min.js"
|
||||
|
|
|
|||
|
|
@ -1,87 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
# CI script to publish specified app APKs to the Play Store.
|
||||
# The APKs should already have been built from a separate script
|
||||
|
||||
# set -x: Debugging use, print each statement
|
||||
# set -x
|
||||
|
||||
## START STANDARD BUILD SCRIPT INCLUDE
|
||||
# adjust relative paths as necessary
|
||||
THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
|
||||
. "${THIS_SCRIPT%/*}/../resources/build/build-utils.sh"
|
||||
## END STANDARD BUILD SCRIPT INCLUDE
|
||||
|
||||
. "$KEYMAN_ROOT/android/KMAPro/build-play-store-notes.inc.sh"
|
||||
|
||||
echo Publishing APKs to Play Store
|
||||
|
||||
#
|
||||
# Prevents 'clear' on exit of mingw64 bash shell
|
||||
#
|
||||
SHLVL=0
|
||||
|
||||
display_usage ( ) {
|
||||
echo "build-publish.sh [-no-daemon] [-kmapro] [-fv]"
|
||||
echo
|
||||
echo "Publish app to the Play Store"
|
||||
echo " -no-daemon Don't start the Gradle daemon. Use for CI"
|
||||
echo " -kmapro Keyman for Android"
|
||||
echo " -fv First Voices"
|
||||
exit 1
|
||||
}
|
||||
|
||||
NO_DAEMON=false
|
||||
DO_KMAPRO=false
|
||||
DO_FV=false
|
||||
|
||||
# Parse args
|
||||
while [[ $# -gt 0 ]] ; do
|
||||
key="$1"
|
||||
case $key in
|
||||
-no-daemon)
|
||||
NO_DAEMON=true
|
||||
;;
|
||||
-kmapro)
|
||||
DO_KMAPRO=true
|
||||
;;
|
||||
-fv)
|
||||
DO_FV=true
|
||||
;;
|
||||
-h|-\?)
|
||||
display_usage
|
||||
;;
|
||||
esac
|
||||
shift # past argument
|
||||
done
|
||||
|
||||
# Override JAVA_HOME to OpenJDK 11
|
||||
set_java_home
|
||||
|
||||
echo
|
||||
echo "NO_DAEMON: $NO_DAEMON"
|
||||
echo "DO_KMAPRO: $DO_KMAPRO"
|
||||
echo "DO_FV: $DO_FV"
|
||||
echo
|
||||
|
||||
if [ "$NO_DAEMON" = true ]; then
|
||||
DAEMON_FLAG=--no-daemon
|
||||
else
|
||||
DAEMON_FLAG=
|
||||
fi
|
||||
|
||||
BUILD_FLAGS="publishReleaseApk"
|
||||
echo "BUILD_FLAGS $BUILD_FLAGS"
|
||||
|
||||
# Publish Keyman for Android
|
||||
if [ "$DO_KMAPRO" = true ]; then
|
||||
# Copy Release Notes
|
||||
generateReleaseNotes
|
||||
cd "$KEYMAN_ROOT/android/KMAPro/"
|
||||
./gradlew $DAEMON_FLAG $BUILD_FLAGS
|
||||
fi
|
||||
|
||||
# Publish FV app
|
||||
if [ "$DO_FV" = true ]; then
|
||||
cd "$KEYMAN_ROOT/oem/firstvoices/android/"
|
||||
./gradlew $DAEMON_FLAG $BUILD_FLAGS
|
||||
fi
|
||||
|
|
@ -18,7 +18,7 @@ builder_describe \
|
|||
configure \
|
||||
build \
|
||||
test \
|
||||
"publish Publishes the APKs to the Play Store." \
|
||||
"publish Publishes symbols to Sentry and the APKs to the Play Store." \
|
||||
--ci+ \
|
||||
--upload-sentry+ \
|
||||
":engine=KMEA Keyman Engine for Android" \
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ Keyman does not use user accounts, so we are unable to identify which crash repo
|
|||
|
||||
### Developer Information
|
||||
|
||||
Keyman is developed and published by SIL International.
|
||||
Keyman is developed and published by SIL Global.
|
||||
|
||||
You can contact SIL or provide any feedback using the app store.
|
||||
|
||||
|
|
|
|||
|
|
@ -3,3 +3,7 @@ title: What's New
|
|||
---
|
||||
|
||||
Here are some of the new features we have added to Keyman 18.0 for Android:
|
||||
|
||||
* New menu to adjust longpress delay time (#12170, #12185)
|
||||
* Support localizations for right-to-left languages (#12215)
|
||||
* Handle additional actions for ENTER key (#12125, #12315)
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ Click on this to [adjust the keyboard height](adjust-keyboard-height).
|
|||
## Adjust longpress delay
|
||||

|
||||
|
||||
Click on this to adjust the delay time for a longpress gesture.
|
||||
Click on this to [adjust the delay time](adjust-longpress-delay) for a longpress gesture.
|
||||
|
||||
## Spacebar Caption
|
||||
Click on this to [change the displayed keyboard name](spacebar-caption) on the spacebar.
|
||||
|
|
|
|||
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"extends": "../../web/tsconfig.base.json",
|
||||
|
||||
"compilerOptions": {
|
||||
// To help better support legacy Android devices
|
||||
"downlevelIteration": true,
|
||||
// Facilitates & simplifies stitching together the worker sourcemaps during the polyfill-concatenation step.
|
||||
"inlineSourceMap": true,
|
||||
// May not be set at the same time as the prior setting.
|
||||
"sourceMap": false
|
||||
}
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
The presence of this file tells CI to use the new builder_ style parameters for build.sh.
|
||||
5
common/models/types/.gitignore
vendored
5
common/models/types/.gitignore
vendored
|
|
@ -1,5 +0,0 @@
|
|||
# Specifically here:
|
||||
test.js
|
||||
|
||||
node_modules/
|
||||
build/
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
`@keymanapp/models-types`
|
||||
=========================
|
||||
|
||||
Declares TypeScript types and interfaces required to define **Lexical
|
||||
Models**, **Word breaking functions**, and all things in between.
|
||||
|
||||
Install
|
||||
-------
|
||||
|
||||
> (see below if you are working in the keymanapp/keyman repo!)
|
||||
|
||||
npm install --save-dev @keymanapp/models-types
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
Say you are creating a **custom lexical model**. Then import this module
|
||||
in your lexical model file!
|
||||
|
||||
```Typescript
|
||||
// my-nifty-model.ts
|
||||
|
||||
import "@keymanapp/models-types";
|
||||
|
||||
export class MyNiftyClass implements LexicalModel {
|
||||
configure(capabilities: Capabilities): Configuration {
|
||||
// TODO: implement me!
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
predict(transform: Transform, context: Context): ProbabilityMass<Suggestion>[] {
|
||||
// TODO: implement me!
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
wordbreak(context: Context): string {
|
||||
// TODO: implement me!
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
punctuation?: LexicalModelPunctuation;
|
||||
}
|
||||
```
|
||||
|
||||
If your are creating a **custom word breaker**, you would do the same:
|
||||
|
||||
```typescript
|
||||
import "@keymanapp/models-types";
|
||||
|
||||
export let myShinyWordBreaker: WordBreakingFunction;
|
||||
myShinyWordBreaker = function (phrase: string): Span[] {
|
||||
// TODO: implement me!
|
||||
throw new Error("Function not implemented")
|
||||
}
|
||||
```
|
||||
|
||||
Look at [index.d.ts](./index.d.ts) for documentation on each and every
|
||||
type!
|
||||
|
||||
|
||||
Usage within keymanapp/keyman repo
|
||||
----------------------------------
|
||||
|
||||
To use it in other subprojects within keymanapp/keyman, ensure that this package
|
||||
is linked using `"*"`. Add this dependency to your subproject like so:
|
||||
|
||||
```json
|
||||
"dependencies": {
|
||||
"@keymanapp/models-types": "*",
|
||||
}
|
||||
```
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# Packages the @keymanapp/models-types package.
|
||||
#
|
||||
## START STANDARD BUILD SCRIPT INCLUDE
|
||||
# adjust relative paths as necessary
|
||||
THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
|
||||
. "${THIS_SCRIPT%/*}/../../../resources/build/builder.inc.sh"
|
||||
## END STANDARD BUILD SCRIPT INCLUDE
|
||||
|
||||
. "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
|
||||
. "$KEYMAN_ROOT/resources/build/build-utils-ci.inc.sh"
|
||||
|
||||
builder_describe "Keyman model types package" \
|
||||
"clean" \
|
||||
"configure" \
|
||||
"build" \
|
||||
"test" \
|
||||
"publish publish to npm" \
|
||||
"--npm-publish+ For publish, do a npm publish, not npm pack (only for CI)" \
|
||||
"--dry-run,-n don't actually publish, just dry run"
|
||||
|
||||
builder_describe_outputs \
|
||||
configure /node_modules \
|
||||
build /common/models/types/build/common/models/types/tsconfig.tsbuildinfo
|
||||
|
||||
builder_parse "$@"
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
builder_run_action clean rm -rf ./build/
|
||||
builder_run_action configure verify_npm_setup
|
||||
builder_run_action build tsc --build
|
||||
builder_run_action test tsc test.ts -lib es6
|
||||
builder_run_action publish builder_publish_npm
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
{
|
||||
"name": "@keymanapp/models-types",
|
||||
"description": "Type definitions in used in the modeling (lexical model/predictive text) component of Keyman.",
|
||||
"types": "./index.d.ts",
|
||||
"scripts": {
|
||||
"test": "tsc test.ts -lib es6"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/keymanapp/keyman"
|
||||
},
|
||||
"keywords": [
|
||||
"lmlayer",
|
||||
"keyman",
|
||||
"predictive",
|
||||
"text",
|
||||
"types",
|
||||
"typing",
|
||||
"typescript"
|
||||
],
|
||||
"author": "Marc Durdin <marc@keyman.com> (https://github.com/mcdurdin)",
|
||||
"contributors": [
|
||||
"Eddie Antonio Santos <Eddie.Santos@nrc-cnrc.gc.ca> (https://github.com/eddieantonio)",
|
||||
"Joshua Horton"
|
||||
],
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/keymanapp/keyman/issues"
|
||||
},
|
||||
"homepage": "https://github.com/keymanapp/keyman/tree/master/common/models/types#readme",
|
||||
"devDependencies": {
|
||||
"typescript": "^5.4.5"
|
||||
},
|
||||
"files": [
|
||||
"README.md",
|
||||
"index.d.ts"
|
||||
]
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"extends": "../tsconfig.kmw-worker-base.json",
|
||||
"compilerOptions": {
|
||||
"declaration": true,
|
||||
"outDir": "build/",
|
||||
},
|
||||
"include": ["./*.ts"],
|
||||
"exclude": ["test.ts"]
|
||||
}
|
||||
|
|
@ -8,15 +8,9 @@ THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
|
|||
. "${THIS_SCRIPT%/*}/../../resources/build/builder.inc.sh"
|
||||
## END STANDARD BUILD SCRIPT INCLUDE
|
||||
|
||||
#
|
||||
# TODO: future modules may include
|
||||
# :sentry-manager \
|
||||
#
|
||||
|
||||
builder_describe "Keyman common web modules" \
|
||||
:keyman-version \
|
||||
:types \
|
||||
:utils \
|
||||
clean \
|
||||
configure \
|
||||
build \
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"extends": "../../web/tsconfig.base.json"
|
||||
}
|
||||
|
|
@ -14,7 +14,7 @@ module.exports = {
|
|||
overrides: [
|
||||
{
|
||||
files: "src/**/*.ts",
|
||||
extends: ["../../../common/web/eslint/eslintNoNodeImports.js"],
|
||||
extends: ["../../../common/tools/eslint/eslintNoNodeImports.js"],
|
||||
},
|
||||
],
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -8,9 +8,11 @@
|
|||
"unicode"
|
||||
],
|
||||
"type": "module",
|
||||
"types": "./build/src/main.d.ts",
|
||||
"exports": {
|
||||
".": {
|
||||
"es6-bundling": "./src/main.ts",
|
||||
"types": "./build/src/main.d.ts",
|
||||
"default": "./build/src/main.js"
|
||||
}
|
||||
},
|
||||
|
|
@ -68,6 +70,7 @@
|
|||
"src/kmx/kmx-plus.ts",
|
||||
"src/kmx/kmx-builder.ts",
|
||||
"src/kmx/element-string.ts",
|
||||
"src/lexical-model-types.ts",
|
||||
"src/kmx/string-list.ts",
|
||||
"src/ldml-keyboard/ldml-keyboard-testdata-xml.ts",
|
||||
"src/ldml-keyboard/unicodeset-parser-api.ts",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { constants } from '@keymanapp/ldml-keyboard-constants';
|
||||
import { DependencySections, StrsItem, UsetItem } from './kmx-plus.js';
|
||||
import { ElementParser, ElementSegment, ElementType } from '../../ldml-keyboard/pattern-parser.js';
|
||||
import { util } from '@keymanapp/common-types';
|
||||
import * as util from '../../util/util.js';
|
||||
import MATCH_HEX_ESCAPE = util.MATCH_HEX_ESCAPE;
|
||||
import unescapeOneQuadString = util.unescapeOneQuadString;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ import { constants } from '@keymanapp/ldml-keyboard-constants';
|
|||
import * as r from 'restructure';
|
||||
import { ElementString } from './element-string.js';
|
||||
import { ListItem } from '../../ldml-keyboard/string-list.js';
|
||||
import { util } from '@keymanapp/common-types';
|
||||
import { KMX } from '@keymanapp/common-types';
|
||||
import * as util from '../../util/util.js';
|
||||
import * as KMX from '../kmx.js';
|
||||
import { UnicodeSetParser, UnicodeSet } from '../../ldml-keyboard/unicodeset-parser-api.js';
|
||||
import { VariableParser } from '../../ldml-keyboard/pattern-parser.js';
|
||||
import { MarkerParser } from '../../ldml-keyboard/pattern-parser.js';
|
||||
|
|
|
|||
|
|
@ -15,14 +15,14 @@
|
|||
*
|
||||
* See also: https://developer.mozilla.org/en-US/docs/Web/API/USVString
|
||||
*/
|
||||
declare type USVString = string;
|
||||
export type USVString = string;
|
||||
|
||||
declare type CasingForm = 'lower' | 'initial' | 'upper';
|
||||
export type CasingForm = 'lower' | 'initial' | 'upper';
|
||||
|
||||
/**
|
||||
* Represents one lexical entry and its probability..
|
||||
*/
|
||||
type TextWithProbability = {
|
||||
export type TextWithProbability = {
|
||||
/**
|
||||
* A lexical entry (word) offered by the model.
|
||||
*
|
||||
|
|
@ -42,7 +42,7 @@ type TextWithProbability = {
|
|||
* Used to facilitate edit-distance calculations by allowing the LMLayer to
|
||||
* efficiently search the model's lexicon in a Trie-like manner.
|
||||
*/
|
||||
declare interface LexiconTraversal {
|
||||
export interface LexiconTraversal {
|
||||
/**
|
||||
* Provides an iterable pattern used to search for words with a 'keyed' prefix matching
|
||||
* the current traversal state's prefix when a new character is appended. Iterating
|
||||
|
|
@ -116,7 +116,7 @@ declare interface LexiconTraversal {
|
|||
/**
|
||||
* The model implementation, within the Worker.
|
||||
*/
|
||||
declare interface LexicalModel {
|
||||
export interface LexicalModel {
|
||||
/**
|
||||
* Processes `config` messages, configuring the newly-loaded model based on the host
|
||||
* platform's capability restrictions.
|
||||
|
|
@ -263,7 +263,7 @@ declare interface LexicalModel {
|
|||
* first, you delete the specified amount amount from the left
|
||||
* and right, then you insert the provided text.
|
||||
*/
|
||||
declare interface Transform {
|
||||
export interface Transform {
|
||||
/**
|
||||
* Facilitates use of unique identifiers for tracking the Transform and
|
||||
* any related data from its original source, as the reference cannot be
|
||||
|
|
@ -298,7 +298,7 @@ declare interface Transform {
|
|||
/**
|
||||
* A concrete suggestion
|
||||
*/
|
||||
declare interface Suggestion {
|
||||
export interface Suggestion {
|
||||
/**
|
||||
* Indicates the externally-supplied id of the Transform that prompted
|
||||
* the Suggestion. Automatically handled by the LMLayer; models should
|
||||
|
|
@ -341,11 +341,11 @@ declare interface Suggestion {
|
|||
autoAccept?: boolean
|
||||
}
|
||||
|
||||
interface Reversion extends Suggestion {
|
||||
export interface Reversion extends Suggestion {
|
||||
tag: 'revert';
|
||||
}
|
||||
|
||||
interface Keep extends Suggestion {
|
||||
export interface Keep extends Suggestion {
|
||||
tag: 'keep';
|
||||
|
||||
/**
|
||||
|
|
@ -368,12 +368,12 @@ interface Keep extends Suggestion {
|
|||
*
|
||||
* If left undefined, the consumers will assume this is a prediction.
|
||||
*/
|
||||
type SuggestionTag = undefined | 'keep' | 'revert' | 'correction' | 'emoji';
|
||||
export type SuggestionTag = undefined | 'keep' | 'revert' | 'correction' | 'emoji';
|
||||
|
||||
/**
|
||||
* The text and environment surrounding the insertion point (text cursor).
|
||||
*/
|
||||
declare interface Context {
|
||||
export interface Context {
|
||||
/**
|
||||
* Up to maxLeftContextCodeUnits code units of Unicode scalar value
|
||||
* (i. e., characters) to the left of the insertion point in the
|
||||
|
|
@ -413,7 +413,7 @@ declare interface Context {
|
|||
* from ambiguous text sequences. Designed for use with fat-finger correction
|
||||
* and similar typing ambiguities.
|
||||
*/
|
||||
interface ProbabilityMass<T> {
|
||||
export interface ProbabilityMass<T> {
|
||||
/**
|
||||
* An individual sample from a Distribution over the same type.
|
||||
*/
|
||||
|
|
@ -426,12 +426,12 @@ interface ProbabilityMass<T> {
|
|||
p: number;
|
||||
}
|
||||
|
||||
declare type Distribution<T> = ProbabilityMass<T>[];
|
||||
export type Distribution<T> = ProbabilityMass<T>[];
|
||||
|
||||
/**
|
||||
* A type augmented with an optional probability.
|
||||
*/
|
||||
type Outcome<T> = T & {
|
||||
export type Outcome<T> = T & {
|
||||
/**
|
||||
* [optional] probability of this outcome.
|
||||
*/
|
||||
|
|
@ -441,7 +441,7 @@ type Outcome<T> = T & {
|
|||
/**
|
||||
* A type augmented with a probability.
|
||||
*/
|
||||
type WithOutcome<T> = T & {
|
||||
export type WithOutcome<T> = T & {
|
||||
/**
|
||||
* Probability of this outcome.
|
||||
*/
|
||||
|
|
@ -458,7 +458,7 @@ type WithOutcome<T> = T & {
|
|||
* prediction, as well as what operations the keyboard is allowed to do on the
|
||||
* underlying buffer.
|
||||
*/
|
||||
declare interface Capabilities {
|
||||
export interface Capabilities {
|
||||
/**
|
||||
* The maximum amount of UTF-16 code points that the keyboard will provide to
|
||||
* the left of the cursor, as an integer.
|
||||
|
|
@ -482,7 +482,7 @@ declare interface Capabilities {
|
|||
/**
|
||||
* Configuration of the LMLayer, sent back to the keyboard.
|
||||
*/
|
||||
declare interface Configuration {
|
||||
export interface Configuration {
|
||||
/**
|
||||
* How many UTF-16 code units maximum to send as the context to the
|
||||
* left of the cursor ("left" in the Unicode character stream).
|
||||
|
|
@ -538,14 +538,14 @@ declare interface Configuration {
|
|||
* @returns an array of spans from the phrase, in order as they appear in the
|
||||
* phrase, each span which representing a word.
|
||||
*/
|
||||
declare interface WordBreakingFunction {
|
||||
export interface WordBreakingFunction {
|
||||
// invariant: span[i].end <= span[i + 1].start
|
||||
// invariant: for all span[i] and span[i + 1], there does not exist a span[k]
|
||||
// where span[i].end <= span[k].start AND span[k].end <= span[i + 1].start
|
||||
(phrase: string): Span[];
|
||||
}
|
||||
|
||||
declare interface CasingFunction {
|
||||
export interface CasingFunction {
|
||||
(caseToApply: CasingForm, text: string, defaultApplyCasing?: CasingFunction): string;
|
||||
}
|
||||
|
||||
|
|
@ -553,7 +553,7 @@ declare interface CasingFunction {
|
|||
* A span of text in a phrase. This is usually meant to represent words from a
|
||||
* pharse.
|
||||
*/
|
||||
declare interface Span {
|
||||
export interface Span {
|
||||
// invariant: start < end (empty spans not allowed)
|
||||
readonly start: number;
|
||||
// invariant: end > end (empty spans not allowed)
|
||||
|
|
@ -572,7 +572,7 @@ declare interface Span {
|
|||
/**
|
||||
* Options for various punctuation to use in suggestions.
|
||||
*/
|
||||
interface LexicalModelPunctuation {
|
||||
export interface LexicalModelPunctuation {
|
||||
/**
|
||||
* The quotes that appear in "keep" suggestions, e.g., keep what the user
|
||||
* typed verbatim.
|
||||
|
|
@ -29,3 +29,5 @@ export * as KMXPlus from './kmx/kmx-plus/kmx-plus.js';
|
|||
export { UnicodeSetParser, UnicodeSet } from './ldml-keyboard/unicodeset-parser-api.js';
|
||||
export { VariableParser, MarkerParser } from './ldml-keyboard/pattern-parser.js';
|
||||
export { ElementString } from './kmx/kmx-plus/element-string.js';
|
||||
|
||||
export { USVString, CasingForm, CasingFunction, TextWithProbability, LexiconTraversal, LexicalModel, LexicalModelPunctuation, Transform, Suggestion, Reversion, Keep, SuggestionTag, Context, Distribution, Outcome, WithOutcome, ProbabilityMass, Configuration, Capabilities, WordBreakingFunction, Span } from './lexical-model-types.js';
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
/// <reference path="./index.d.ts" />
|
||||
|
||||
/**
|
||||
* This file "tests" the exports from the main module.
|
||||
*
|
||||
*
|
||||
* Since the exports are all types, the "test" here is that the type can be
|
||||
* imported and compiled without any compiler errors.
|
||||
*/
|
||||
|
||||
import { USVString, Transform, Suggestion, SuggestionTag, Context, Capabilities, Configuration, Distribution, WordBreakingFunction, Span, LexicalModelPunctuation, ElementString, KMXPlus } from '@keymanapp/common-types';
|
||||
|
||||
export let u: USVString;
|
||||
export let l: Transform
|
||||
export let s: Suggestion;
|
||||
|
|
@ -17,4 +17,9 @@ export let conf: Configuration;
|
|||
export let d: Distribution<Suggestion>;
|
||||
export let wbf: WordBreakingFunction;
|
||||
export let sp: Span;
|
||||
export let lmp: LexicalModelPunctuation;
|
||||
export let lmp: LexicalModelPunctuation;
|
||||
|
||||
|
||||
// try some of the other types - that should still work
|
||||
export let elemString: ElementString;
|
||||
export let section: KMXPlus.Section;
|
||||
|
|
@ -11,11 +11,12 @@
|
|||
},
|
||||
"include": [
|
||||
"**/test-*.ts",
|
||||
"**/*.tests.ts",
|
||||
"./helpers/*.ts",
|
||||
],
|
||||
"references": [
|
||||
{ "path": "../../keyman-version" },
|
||||
{ "path": "../../../../core/include/ldml/"},
|
||||
{ "path": "../" },
|
||||
]
|
||||
],
|
||||
}
|
||||
|
|
|
|||
|
|
@ -171,8 +171,9 @@ const std::string &block_unicode_ver) {
|
|||
|
||||
// the cxx_icu can come from the Ubuntu environment, so do not depend on it
|
||||
// for now.
|
||||
// TODO: Resolve with ICU4C 76 in #12398
|
||||
//assert_basic_equal(node_icu_unicode_major, cxx_icu_unicode_major);
|
||||
assert_basic_equal(node_icu_unicode_major, block_ver_major);
|
||||
//assert_basic_equal(node_icu_unicode_major, block_ver_major);
|
||||
|
||||
// seems less important if the C++ ICU verison matches the Node.js ICU version.
|
||||
//assert_basic_equal(cxx_icu_major, node_icu_major);
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
```ts
|
||||
|
||||
/// <reference types="@keymanapp/models-types" />
|
||||
/// <reference types="@keymanapp/common-types" />
|
||||
|
||||
import { CompilerCallbacks } from '@keymanapp/common-types';
|
||||
import { CompilerEvent } from '@keymanapp/common-types';
|
||||
|
|
|
|||
|
|
@ -151,7 +151,6 @@ function do_publish() {
|
|||
|
||||
../../common/web/keyman-version/build.sh publish $DRY_RUN $NPM_PUBLISH
|
||||
../../common/web/types/build.sh publish $DRY_RUN $NPM_PUBLISH
|
||||
../../common/models/types/build.sh publish $DRY_RUN $NPM_PUBLISH
|
||||
../../core/include/ldml/build.sh publish $DRY_RUN $NPM_PUBLISH
|
||||
# end TODO
|
||||
#--------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ module.exports = {
|
|||
overrides: [
|
||||
{
|
||||
files:"src/**/*.ts",
|
||||
extends: ["../../../common/web/eslint/eslintNoNodeImports.js"],
|
||||
extends: ["../../../common/tools/eslint/eslintNoNodeImports.js"],
|
||||
}
|
||||
],
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
/// <reference types="@keymanapp/common-types" />
|
||||
// above is required for now, seemingly https://github.com/microsoft/TypeScript/issues/42873
|
||||
// probably addressed in ts 5.5.2
|
||||
import { CompilerErrorNamespace, CompilerErrorSeverity, CompilerMessageSpec as m, CompilerMessageDef as def, CompilerMessageSpecWithException, KeymanUrls } from "@keymanapp/developer-utils";
|
||||
|
||||
const Namespace = CompilerErrorNamespace.Analyzer;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ module.exports = {
|
|||
overrides: [
|
||||
{
|
||||
files:"src/**/*.ts",
|
||||
extends: ["../../../common/web/eslint/eslintNoNodeImports.js"],
|
||||
extends: ["../../../common/tools/eslint/eslintNoNodeImports.js"],
|
||||
}
|
||||
],
|
||||
ignorePatterns: ["test/fixtures/*"],
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ module.exports = {
|
|||
overrides: [
|
||||
{
|
||||
files:"src/**/*.ts",
|
||||
extends: ["../../../common/web/eslint/eslintNoNodeImports.js"],
|
||||
extends: ["../../../common/tools/eslint/eslintNoNodeImports.js"],
|
||||
}
|
||||
],
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ module.exports = {
|
|||
overrides: [
|
||||
{
|
||||
files: "src/**/*.ts",
|
||||
extends: ["../../../common/web/eslint/eslintNoNodeImports.js"],
|
||||
extends: ["../../../common/tools/eslint/eslintNoNodeImports.js"],
|
||||
}
|
||||
],
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
|
|||
|
||||
builder_describe "Build Keyman kmc Lexical Model model-info Compiler module" \
|
||||
"@/common/web/types" \
|
||||
"@/common/models/types" \
|
||||
"clean" \
|
||||
"configure" \
|
||||
"build" \
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@keymanapp/common-types": "*",
|
||||
"@keymanapp/models-types": "*",
|
||||
"@keymanapp/common-types": "*",
|
||||
"@keymanapp/developer-utils": "*"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@
|
|||
],
|
||||
"references": [
|
||||
{ "path": "../../../common/web/types" },
|
||||
{ "path": "../../../common/models/types" },
|
||||
{ "path": "../common/web/utils" },
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ module.exports = {
|
|||
overrides: [
|
||||
{
|
||||
files: "src/**/*.ts",
|
||||
extends: ["../../../common/web/eslint/eslintNoNodeImports.js"],
|
||||
extends: ["../../../common/tools/eslint/eslintNoNodeImports.js"],
|
||||
},
|
||||
],
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -8,12 +8,10 @@ THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
|
|||
. "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
|
||||
. "$KEYMAN_ROOT/resources/build/build-utils-ci.inc.sh"
|
||||
|
||||
# TODO: "@/common/models/types" \
|
||||
|
||||
builder_describe "Keyman kmc Lexical Model Compiler module" \
|
||||
"@/common/web/keyman-version" \
|
||||
"@/developer/src/common/web/test-helpers" \
|
||||
"@/common/models/templates test" \
|
||||
"@/web/src/engine/predictive-text/templates/ test" \
|
||||
"clean" \
|
||||
"configure" \
|
||||
"build" \
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
"dependencies": {
|
||||
"@keymanapp/common-types": "*",
|
||||
"@keymanapp/keyman-version": "*",
|
||||
"@keymanapp/models-types": "*",
|
||||
"@keymanapp/common-types": "*",
|
||||
"typescript": "^5.4.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/// <reference types="@keymanapp/models-types" />
|
||||
import { Span, WordBreakingFunction } from '@keymanapp/common-types';
|
||||
|
||||
/**
|
||||
* Returns a word breaker that joins spans of an existing word breaker.
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
* the LMLayer's internal worker code, so we provide those definitions too.
|
||||
*/
|
||||
|
||||
import { CasingFunction, LexicalModelPunctuation, WordBreakingFunction } from '@keymanapp/common-types';
|
||||
|
||||
export interface LexicalModelDeclaration {
|
||||
readonly format: 'trie-1.0'|'fst-foma-1.0'|'custom-1.0',
|
||||
//... metadata ...
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
import { CasingForm, CasingFunction } from '@keymanapp/common-types';
|
||||
|
||||
/**
|
||||
* Converts wordforms into an indexable form. It does this by
|
||||
* normalizing the letter case of characters INDIVIDUALLY (to disregard
|
||||
|
|
@ -104,4 +106,4 @@ export function defaultApplyCasing(casing: CasingForm, text: string): string {
|
|||
return text.substring(0, headUnitLength).toUpperCase() // head - uppercased
|
||||
.concat(text.substring(headUnitLength)); // tail - lowercased
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import { defaultApplyCasing,
|
|||
|
||||
import KEYMAN_VERSION from "@keymanapp/keyman-version";
|
||||
import { LexicalModelSource, WordformToKeySpec } from "./lexical-model.js";
|
||||
import { CasingForm, CasingFunction } from '@keymanapp/common-types';
|
||||
|
||||
/**
|
||||
* Processes certain defined model behaviors in such a way that the needed closures
|
||||
|
|
@ -219,4 +220,4 @@ export class ModelDefinitions {
|
|||
}
|
||||
|
||||
// Because it references the class field, this line must come afterward.
|
||||
const PSEUDOCLOSURE = ModelDefinitions.COMPILED_NAME;
|
||||
const PSEUDOCLOSURE = ModelDefinitions.COMPILED_NAME;
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { Span, WordBreakingFunction } from '@keymanapp/common-types';
|
||||
import { OverrideScriptDefaults } from "./lexical-model.js";
|
||||
import { ModelCompilerError, ModelCompilerMessages } from "./model-compiler-messages.js";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
/// <reference types="@keymanapp/models-types" />
|
||||
|
||||
/**
|
||||
* Helpers and utilities for the Mocha tests.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import 'mocha';
|
|||
|
||||
import { makePathToFixture, compileModelSourceCode } from './helpers/index.js';
|
||||
import { TestCompilerCallbacks } from '@keymanapp/developer-test-helpers';
|
||||
import { CasingForm, CasingFunction } from '@keymanapp/common-types';
|
||||
|
||||
describe('LexicalModelCompiler - pseudoclosure compilation + use', function () {
|
||||
const callbacks = new TestCompilerCallbacks();
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import { createTrieDataStructure } from '../src/build-trie.js';
|
|||
import { ModelCompilerError } from '../src/model-compiler-messages.js';
|
||||
import { TestCompilerCallbacks } from '@keymanapp/developer-test-helpers';
|
||||
import { TrieModel } from '@keymanapp/models-templates';
|
||||
import { Span } from '@keymanapp/common-types';
|
||||
|
||||
describe('LexicalModelCompiler', function () {
|
||||
const callbacks = new TestCompilerCallbacks();
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import {assert} from 'chai';
|
|||
import { defaultSearchTermToKey,
|
||||
defaultCasedSearchTermToKey,
|
||||
defaultApplyCasing } from '../src/model-defaults.js';
|
||||
import { CasingForm, CasingFunction } from '@keymanapp/common-types';
|
||||
|
||||
|
||||
describe('The default searchTermToKey() function', function () {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import { assert } from "chai";
|
||||
import defaultWordBreaker from '@keymanapp/models-wordbreakers';
|
||||
import {decorateWithJoin} from '../src/join-word-breaker-decorator.js';
|
||||
import { Span } from '@keymanapp/common-types';
|
||||
|
||||
describe('The join word breaker decorator', function () {
|
||||
it('should decorate an existing word breaker', function () {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'mocha';
|
|||
import { assert } from 'chai';
|
||||
import { ModelDefinitions } from '../src/model-definitions.js';
|
||||
import { LexicalModelSource } from '../src/lexical-model.js';
|
||||
import { CasingForm, CasingFunction } from '@keymanapp/common-types';
|
||||
|
||||
describe('Model definition pseudoclosures', function () {
|
||||
describe('14.0 defaults', function() {
|
||||
|
|
@ -195,4 +196,4 @@ describe('Model definition pseudoclosures', function () {
|
|||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import { assert } from "chai";
|
||||
import defaultWordBreaker from '@keymanapp/models-wordbreakers';
|
||||
import {decorateWithScriptOverrides} from '../src/script-overrides-decorator.js';
|
||||
import { Span } from '@keymanapp/common-types';
|
||||
|
||||
const THIN_SPACE = "\u2009";
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
],
|
||||
"references": [
|
||||
{ "path": "../../../common/web/keyman-version" },
|
||||
{ "path": "../../../common/models/types" },
|
||||
{ "path": "../../../common/web/types" },
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ module.exports = {
|
|||
overrides: [
|
||||
{
|
||||
files:"src/**/*.ts",
|
||||
extends: ["../../../common/web/eslint/eslintNoNodeImports.js"],
|
||||
extends: ["../../../common/tools/eslint/eslintNoNodeImports.js"],
|
||||
}
|
||||
],
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
"@keymanapp/kmc-model": "*",
|
||||
"@keymanapp/kmc-model-info": "*",
|
||||
"@keymanapp/kmc-package": "*",
|
||||
"@keymanapp/models-types": "*",
|
||||
"@keymanapp/common-types": "*",
|
||||
"@sentry/node": "^7.57.0",
|
||||
"chalk": "^2.4.2",
|
||||
"commander": "^10.0.0",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
#include <fstream>
|
||||
#include <vector>
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@
|
|||
readonly PACKAGES=(
|
||||
common/web/keyman-version
|
||||
common/web/types
|
||||
common/models/types
|
||||
core/include/ldml
|
||||
developer/src/common/web/utils
|
||||
developer/src/kmc-analyze
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
/common/ @mcdurdin @rc-swag
|
||||
/core/ @mcdurdin @rc-swag
|
||||
/common/lexical-model-types/ @jahorton @mcdurdin
|
||||
/common/models/ @jahorton @mcdurdin
|
||||
/common/schemas/ @mcdurdin @jahorton
|
||||
/common/test/ @mcdurdin @ermshiperete
|
||||
/common/web/ @jahorton @mcdurdin
|
||||
|
|
|
|||
|
|
@ -68,6 +68,6 @@ https://help.keyman.com/developer/engine/android/latest-version/
|
|||
| KEYMAN_VERSION_JAVA | 11 |
|
||||
| KEYMAN_VERSION_LANGTAGS | 2024-05-22 |
|
||||
| KEYMAN_VERSION_LANGTAGS_SUBTAG_REGISTRY | 2024-05-16 |
|
||||
| KEYMAN_VERSION_UNICODE | 15.1.0 |
|
||||
| KEYMAN_VERSION_UNICODE | 16.0.0 |
|
||||
|
||||
> ### This file is auto-generated by publish-minimum-versions.sh. Do not modify
|
||||
|
|
|
|||
|
|
@ -19,13 +19,13 @@ Packages are **never** published from a developer's machine.
|
|||
* `@keymanapp/kmc-model` -- located at `developer/src/kmc-model`
|
||||
* `@keymanapp/kmc-model-info` -- located at `developer/src/kmc-model-info`
|
||||
* `@keymanapp/kmc-package` -- located at `developer/src/kmc-package`
|
||||
* `@keymanapp/models-types` -- located at `common/models/types`
|
||||
|
||||
### Deprecated npm packages
|
||||
|
||||
* `@keymanapp/developer-lexical-model-compiler` -- replaced by `@keymanapp/kmc`
|
||||
* `@keymanapp/lexical-model-compiler` -- replaced by `@keymanapp/kmc`
|
||||
* `@keymanapp/lexical-model-types` -- replaced by `@keymanapp/models-types`
|
||||
* `@keymanapp/lexical-model-types` -- replaced by `@keymanapp/common-types`
|
||||
* `@keymanapp/models-types` -- replaced by `@keymanapp/common-types`
|
||||
* `@keymanapp/lmlayer-cli` -- replaced by `@keymanapp/kmc`
|
||||
* `@keymanapp/models-wordbreakers` -- published accidentally
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ verify_on_mac
|
|||
|
||||
builder_describe "Builds Keyman Engine for use on iOS devices - iPhone and iPad." \
|
||||
"@/web/src/app/webview build" \
|
||||
"@/common/web/sentry-manager build" \
|
||||
"@/web/src/engine/sentry-manager build" \
|
||||
"clean" \
|
||||
"configure" \
|
||||
"build" \
|
||||
|
|
@ -109,7 +109,7 @@ function update_bundle ( ) {
|
|||
cp "$KMW_PRODUCT/keymanweb-webview.js" "$BUNDLE_PATH/keymanweb-webview.js"
|
||||
|
||||
cp "$KEYMAN_ROOT/node_modules/@sentry/browser/build/bundle.min.js" "$BUNDLE_PATH/sentry.min.js"
|
||||
cp "$KEYMAN_ROOT/common/web/sentry-manager/build/lib/index.js" "$BUNDLE_PATH/keyman-sentry.js"
|
||||
cp "$KEYMAN_ROOT/web/src/engine/sentry-manager/build/lib/index.js" "$BUNDLE_PATH/keyman-sentry.js"
|
||||
}
|
||||
|
||||
# First things first - update our dependencies.
|
||||
|
|
@ -140,4 +140,4 @@ function build_engine() {
|
|||
|
||||
builder_run_action clean do_clean
|
||||
builder_run_action configure do_configure
|
||||
builder_run_action build build_engine
|
||||
builder_run_action build build_engine
|
||||
|
|
|
|||
|
|
@ -73,12 +73,17 @@ java {
|
|||
}
|
||||
|
||||
// how to configure the sentry android gradle plugin
|
||||
sentry {
|
||||
// Disables or enables the automatic configuration of Native symbols
|
||||
uploadNativeSymbols = true
|
||||
task publishSentry {
|
||||
doLast {
|
||||
println 'Publishing FirstVoices symbols to Sentry'
|
||||
sentry {
|
||||
// Disables or enables the automatic configuration of Native symbols
|
||||
uploadNativeSymbols = true
|
||||
|
||||
// Does or doesn't include the source code of native code for Sentry
|
||||
includeNativeSources = true
|
||||
// Does or doesn't include the source code of native code for Sentry
|
||||
includeNativeSources = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String env_keys_json_file = System.getenv("oem_firstvoices_keys_json_file")
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@
|
|||
<div id="footer">
|
||||
<h2>Developed by</h2>
|
||||
<img src="keyman.svg" alt="" />
|
||||
<p>SIL International</p>
|
||||
<p>SIL Global</p>
|
||||
<p><a href="https://www.keyman.com">www.keyman.com</a></p>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ builder_describe "Builds FirstVoices for Android app." \
|
|||
"configure" \
|
||||
"build" \
|
||||
"test Runs lint and tests." \
|
||||
"publish Publishes symbols to Sentry and the APK to the Play Store." \
|
||||
"--ci Don't start the Gradle daemon. For CI"
|
||||
|
||||
# parse before describe_outputs to check debug flags
|
||||
|
|
@ -85,3 +86,6 @@ if builder_start_action test; then
|
|||
|
||||
builder_finish_action success test
|
||||
fi
|
||||
|
||||
builder_run_action publish ./gradlew $DAEMON_FLAG publishSentry publishReleaseApk
|
||||
|
||||
|
|
|
|||
658
package-lock.json
generated
658
package-lock.json
generated
|
|
@ -21,7 +21,6 @@
|
|||
"developer/src/kmc-package",
|
||||
"developer/src/kmc",
|
||||
"developer/src/server",
|
||||
"common/models/*",
|
||||
"common/test/resources",
|
||||
"common/tools/*",
|
||||
"common/web/*",
|
||||
|
|
@ -70,45 +69,6 @@
|
|||
"node": "20.16.0"
|
||||
}
|
||||
},
|
||||
"common/models/templates": {
|
||||
"name": "@keymanapp/models-templates",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@keymanapp/keyman-version": "*",
|
||||
"@keymanapp/models-types": "*",
|
||||
"@keymanapp/models-wordbreakers": "*",
|
||||
"@keymanapp/resources-gosh": "*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@keymanapp/models-types": "*",
|
||||
"@keymanapp/web-utils": "*",
|
||||
"@types/mocha": "^7.0.2",
|
||||
"c8": "^7.12.0",
|
||||
"mocha": "^10.0.0",
|
||||
"mocha-teamcity-reporter": "^4.0.0",
|
||||
"typescript": "^5.4.5"
|
||||
}
|
||||
},
|
||||
"common/models/types": {
|
||||
"name": "@keymanapp/models-types",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"typescript": "^5.4.5"
|
||||
}
|
||||
},
|
||||
"common/models/wordbreakers": {
|
||||
"name": "@keymanapp/models-wordbreakers",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@keymanapp/models-types": "*",
|
||||
"@keymanapp/resources-gosh": "*",
|
||||
"@types/mocha": "^7.0.2",
|
||||
"c8": "^7.12.0",
|
||||
"mocha": "^10.0.0",
|
||||
"mocha-teamcity-reporter": "^4.0.0",
|
||||
"typescript": "^5.4.5"
|
||||
}
|
||||
},
|
||||
"common/test/resources": {
|
||||
"name": "@keymanapp/common-test-resources",
|
||||
"license": "MIT",
|
||||
|
|
@ -167,17 +127,6 @@
|
|||
"typescript": "^5.4.5"
|
||||
}
|
||||
},
|
||||
"common/web/sentry-manager": {
|
||||
"name": "@keymanapp/web-sentry-manager",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@keymanapp/keyman-version": "*",
|
||||
"@sentry/browser": "^5.27.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"typescript": "^5.4.5"
|
||||
}
|
||||
},
|
||||
"common/web/types": {
|
||||
"name": "@keymanapp/common-types",
|
||||
"license": "MIT",
|
||||
|
|
@ -356,18 +305,6 @@
|
|||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"common/web/utils": {
|
||||
"name": "@keymanapp/web-utils",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@keymanapp/keyman-version": "*",
|
||||
"@keymanapp/resources-gosh": "*",
|
||||
"c8": "^7.12.0",
|
||||
"mocha": "^10.0.0",
|
||||
"mocha-teamcity-reporter": "^4.0.0",
|
||||
"typescript": "^5.4.5"
|
||||
}
|
||||
},
|
||||
"core/include/ldml": {
|
||||
"name": "@keymanapp/ldml-keyboard-constants",
|
||||
"license": "MIT"
|
||||
|
|
@ -521,7 +458,6 @@
|
|||
"@keymanapp/kmc-model": "*",
|
||||
"@keymanapp/kmc-model-info": "*",
|
||||
"@keymanapp/kmc-package": "*",
|
||||
"@keymanapp/models-types": "*",
|
||||
"@sentry/node": "^7.57.0",
|
||||
"chalk": "^2.4.2",
|
||||
"commander": "^10.0.0",
|
||||
|
|
@ -1330,7 +1266,6 @@
|
|||
"dependencies": {
|
||||
"@keymanapp/common-types": "*",
|
||||
"@keymanapp/keyman-version": "*",
|
||||
"@keymanapp/models-types": "*",
|
||||
"typescript": "^5.4.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
@ -1349,8 +1284,7 @@
|
|||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@keymanapp/common-types": "*",
|
||||
"@keymanapp/developer-utils": "*",
|
||||
"@keymanapp/models-types": "*"
|
||||
"@keymanapp/developer-utils": "*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/mocha": "^5.2.7",
|
||||
|
|
@ -2174,6 +2108,23 @@
|
|||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-arm": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz",
|
||||
"integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-arm64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz",
|
||||
|
|
@ -2318,6 +2269,23 @@
|
|||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-loong64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz",
|
||||
"integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==",
|
||||
"cpu": [
|
||||
"loong64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-mips64el": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz",
|
||||
|
|
@ -2414,6 +2382,23 @@
|
|||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/openbsd-arm64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz",
|
||||
"integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"openbsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/openbsd-x64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz",
|
||||
|
|
@ -2843,15 +2828,11 @@
|
|||
"link": true
|
||||
},
|
||||
"node_modules/@keymanapp/models-templates": {
|
||||
"resolved": "common/models/templates",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/@keymanapp/models-types": {
|
||||
"resolved": "common/models/types",
|
||||
"resolved": "web/src/engine/predictive-text/templates",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/@keymanapp/models-wordbreakers": {
|
||||
"resolved": "common/models/wordbreakers",
|
||||
"resolved": "web/src/engine/predictive-text/wordbreakers",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/@keymanapp/recorder-core": {
|
||||
|
|
@ -2867,11 +2848,11 @@
|
|||
"link": true
|
||||
},
|
||||
"node_modules/@keymanapp/web-sentry-manager": {
|
||||
"resolved": "common/web/sentry-manager",
|
||||
"resolved": "web/src/engine/sentry-manager",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/@keymanapp/web-utils": {
|
||||
"resolved": "common/web/utils",
|
||||
"resolved": "web/src/engine/common/web-utils",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/@mdn/browser-compat-data": {
|
||||
|
|
@ -4004,6 +3985,7 @@
|
|||
},
|
||||
"node_modules/@sentry/browser": {
|
||||
"version": "5.30.0",
|
||||
"dev": true,
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
"@sentry/core": "5.30.0",
|
||||
|
|
@ -4018,7 +4000,8 @@
|
|||
"node_modules/@sentry/browser/node_modules/tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@sentry/cli": {
|
||||
"version": "2.31.0",
|
||||
|
|
@ -4166,6 +4149,7 @@
|
|||
},
|
||||
"node_modules/@sentry/core": {
|
||||
"version": "5.30.0",
|
||||
"dev": true,
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
"@sentry/hub": "5.30.0",
|
||||
|
|
@ -4181,10 +4165,12 @@
|
|||
"node_modules/@sentry/core/node_modules/tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@sentry/hub": {
|
||||
"version": "5.30.0",
|
||||
"dev": true,
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
"@sentry/types": "5.30.0",
|
||||
|
|
@ -4198,10 +4184,12 @@
|
|||
"node_modules/@sentry/hub/node_modules/tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@sentry/minimal": {
|
||||
"version": "5.30.0",
|
||||
"dev": true,
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
"@sentry/hub": "5.30.0",
|
||||
|
|
@ -4215,7 +4203,8 @@
|
|||
"node_modules/@sentry/minimal/node_modules/tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@sentry/node": {
|
||||
"version": "7.108.0",
|
||||
|
|
@ -4264,6 +4253,7 @@
|
|||
},
|
||||
"node_modules/@sentry/types": {
|
||||
"version": "5.30.0",
|
||||
"dev": true,
|
||||
"license": "BSD-3-Clause",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
|
|
@ -4271,6 +4261,7 @@
|
|||
},
|
||||
"node_modules/@sentry/utils": {
|
||||
"version": "5.30.0",
|
||||
"dev": true,
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
"@sentry/types": "5.30.0",
|
||||
|
|
@ -4283,7 +4274,8 @@
|
|||
"node_modules/@sentry/utils/node_modules/tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@sindresorhus/is": {
|
||||
"version": "4.6.0",
|
||||
|
|
@ -8980,10 +8972,11 @@
|
|||
}
|
||||
},
|
||||
"node_modules/get-tsconfig": {
|
||||
"version": "4.7.4",
|
||||
"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.4.tgz",
|
||||
"integrity": "sha512-ofbkKj+0pjXjhejr007J/fLf+sW+8H7K5GCm+msC8q3IpvgjobpyPqSRFemNyIMxklC0zeJpi7VDFna19FacvQ==",
|
||||
"version": "4.8.0",
|
||||
"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.0.tgz",
|
||||
"integrity": "sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"resolve-pkg-maps": "^1.0.0"
|
||||
},
|
||||
|
|
@ -13789,6 +13782,438 @@
|
|||
"node": ">=0.6.x"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx": {
|
||||
"version": "4.19.0",
|
||||
"resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.0.tgz",
|
||||
"integrity": "sha512-bV30kM7bsLZKZIOCHeMNVMJ32/LuJzLVajkQI/qf92J2Qr08ueLQvW00PUZGiuLPP760UINwupgUj8qrSCPUKg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"esbuild": "~0.23.0",
|
||||
"get-tsconfig": "^4.7.5"
|
||||
},
|
||||
"bin": {
|
||||
"tsx": "dist/cli.mjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "~2.3.3"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/aix-ppc64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz",
|
||||
"integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"aix"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/android-arm64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz",
|
||||
"integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/android-x64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz",
|
||||
"integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/darwin-arm64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz",
|
||||
"integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/darwin-x64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz",
|
||||
"integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/freebsd-arm64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz",
|
||||
"integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/freebsd-x64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz",
|
||||
"integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/linux-arm": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz",
|
||||
"integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/linux-arm64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz",
|
||||
"integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/linux-ia32": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz",
|
||||
"integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/linux-mips64el": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz",
|
||||
"integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==",
|
||||
"cpu": [
|
||||
"mips64el"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/linux-ppc64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz",
|
||||
"integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/linux-riscv64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz",
|
||||
"integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/linux-s390x": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz",
|
||||
"integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/linux-x64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz",
|
||||
"integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/netbsd-x64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz",
|
||||
"integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"netbsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/openbsd-x64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz",
|
||||
"integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"openbsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/sunos-x64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz",
|
||||
"integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"sunos"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/win32-arm64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz",
|
||||
"integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/win32-ia32": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz",
|
||||
"integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/@esbuild/win32-x64": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz",
|
||||
"integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/esbuild": {
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz",
|
||||
"integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"esbuild": "bin/esbuild"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@esbuild/aix-ppc64": "0.23.1",
|
||||
"@esbuild/android-arm": "0.23.1",
|
||||
"@esbuild/android-arm64": "0.23.1",
|
||||
"@esbuild/android-x64": "0.23.1",
|
||||
"@esbuild/darwin-arm64": "0.23.1",
|
||||
"@esbuild/darwin-x64": "0.23.1",
|
||||
"@esbuild/freebsd-arm64": "0.23.1",
|
||||
"@esbuild/freebsd-x64": "0.23.1",
|
||||
"@esbuild/linux-arm": "0.23.1",
|
||||
"@esbuild/linux-arm64": "0.23.1",
|
||||
"@esbuild/linux-ia32": "0.23.1",
|
||||
"@esbuild/linux-loong64": "0.23.1",
|
||||
"@esbuild/linux-mips64el": "0.23.1",
|
||||
"@esbuild/linux-ppc64": "0.23.1",
|
||||
"@esbuild/linux-riscv64": "0.23.1",
|
||||
"@esbuild/linux-s390x": "0.23.1",
|
||||
"@esbuild/linux-x64": "0.23.1",
|
||||
"@esbuild/netbsd-x64": "0.23.1",
|
||||
"@esbuild/openbsd-arm64": "0.23.1",
|
||||
"@esbuild/openbsd-x64": "0.23.1",
|
||||
"@esbuild/sunos-x64": "0.23.1",
|
||||
"@esbuild/win32-arm64": "0.23.1",
|
||||
"@esbuild/win32-ia32": "0.23.1",
|
||||
"@esbuild/win32-x64": "0.23.1"
|
||||
}
|
||||
},
|
||||
"node_modules/tsx/node_modules/fsevents": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
||||
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/tunnel": {
|
||||
"version": "0.0.6",
|
||||
"license": "MIT",
|
||||
|
|
@ -14735,9 +15160,9 @@
|
|||
"name": "keyman",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@keymanapp/common-types": "*",
|
||||
"@keymanapp/keyman-version": "*",
|
||||
"@keymanapp/lexical-model-layer": "*",
|
||||
"@keymanapp/models-types": "*",
|
||||
"@keymanapp/recorder-core": "*",
|
||||
"@keymanapp/web-utils": "*",
|
||||
"core-js": "^3.34.0",
|
||||
|
|
@ -14751,7 +15176,20 @@
|
|||
"@zip.js/zip.js": "^2.7.32",
|
||||
"c8": "^7.12.0",
|
||||
"jsdom": "^23.0.1",
|
||||
"mocha": "^10.0.0"
|
||||
"mocha": "^10.0.0",
|
||||
"tsx": "^4.19.0"
|
||||
}
|
||||
},
|
||||
"web/src/engine/common/web-utils": {
|
||||
"name": "@keymanapp/web-utils",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@keymanapp/keyman-version": "*",
|
||||
"@keymanapp/resources-gosh": "*",
|
||||
"c8": "^7.12.0",
|
||||
"mocha": "^10.0.0",
|
||||
"mocha-teamcity-reporter": "^4.0.0",
|
||||
"typescript": "^5.4.5"
|
||||
}
|
||||
},
|
||||
"web/src/engine/osk/gesture-processor": {
|
||||
|
|
@ -14768,6 +15206,25 @@
|
|||
"typescript": "^5.4.5"
|
||||
}
|
||||
},
|
||||
"web/src/engine/predictive-text/templates": {
|
||||
"name": "@keymanapp/models-templates",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@keymanapp/common-types": "*",
|
||||
"@keymanapp/keyman-version": "*",
|
||||
"@keymanapp/models-wordbreakers": "*",
|
||||
"@keymanapp/resources-gosh": "*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@keymanapp/common-types": "*",
|
||||
"@keymanapp/web-utils": "*",
|
||||
"@types/mocha": "^7.0.2",
|
||||
"c8": "^7.12.0",
|
||||
"mocha": "^10.0.0",
|
||||
"mocha-teamcity-reporter": "^4.0.0",
|
||||
"typescript": "^5.4.5"
|
||||
}
|
||||
},
|
||||
"web/src/engine/predictive-text/types": {
|
||||
"name": "@keymanapp/lm-message-types",
|
||||
"license": "MIT",
|
||||
|
|
@ -14775,6 +15232,19 @@
|
|||
"typescript": "^5.4.5"
|
||||
}
|
||||
},
|
||||
"web/src/engine/predictive-text/wordbreakers": {
|
||||
"name": "@keymanapp/models-wordbreakers",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@keymanapp/common-types": "*",
|
||||
"@keymanapp/resources-gosh": "*",
|
||||
"@types/mocha": "^7.0.2",
|
||||
"c8": "^7.12.0",
|
||||
"mocha": "^10.0.0",
|
||||
"mocha-teamcity-reporter": "^4.0.0",
|
||||
"typescript": "^5.4.5"
|
||||
}
|
||||
},
|
||||
"web/src/engine/predictive-text/worker-main": {
|
||||
"name": "@keymanapp/lexical-model-layer",
|
||||
"license": "MIT",
|
||||
|
|
@ -14787,7 +15257,7 @@
|
|||
"string.prototype.codepointat": "^0.2.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@keymanapp/models-types": "*",
|
||||
"@keymanapp/common-types": "*",
|
||||
"@keymanapp/resources-gosh": "*",
|
||||
"mocha": "^10.0.0",
|
||||
"mocha-teamcity-reporter": "^4.0.0",
|
||||
|
|
@ -14808,7 +15278,7 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@keymanapp/common-test-resources": "*",
|
||||
"@keymanapp/models-types": "*",
|
||||
"@keymanapp/common-types": "*",
|
||||
"@keymanapp/resources-gosh": "*",
|
||||
"c8": "^7.12.0",
|
||||
"combine-source-map": "^0.8.0",
|
||||
|
|
@ -14817,12 +15287,24 @@
|
|||
"typescript": "^5.4.5"
|
||||
}
|
||||
},
|
||||
"web/src/engine/sentry-manager": {
|
||||
"name": "@keymanapp/web-sentry-manager",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@keymanapp/keyman-version": "*",
|
||||
"@sentry/browser": "^5.27.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"typescript": "^5.4.5"
|
||||
}
|
||||
},
|
||||
"web/src/tools/testing/recorder-core": {
|
||||
"name": "@keymanapp/recorder-core",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@keymanapp/common-types": "*",
|
||||
"@keymanapp/keyman-version": "*",
|
||||
"@keymanapp/models-types": "*",
|
||||
"@keymanapp/web-utils": "*"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
|
|||
|
|
@ -46,7 +46,6 @@
|
|||
"developer/src/kmc-package",
|
||||
"developer/src/kmc",
|
||||
"developer/src/server",
|
||||
"common/models/*",
|
||||
"common/test/resources",
|
||||
"common/tools/*",
|
||||
"common/web/*",
|
||||
|
|
|
|||
|
|
@ -39,4 +39,4 @@ KEYMAN_VERSION_CLDR=45 # LDML Keyboards version
|
|||
KEYMAN_VERSION_ISO639_3=2024-05-22 # Date of last import
|
||||
KEYMAN_VERSION_LANGTAGS=2024-05-22 # Date of last import
|
||||
KEYMAN_VERSION_LANGTAGS_SUBTAG_REGISTRY=2024-05-16 # Date of last import
|
||||
KEYMAN_VERSION_UNICODE=15.1.0 # UCD + related data
|
||||
KEYMAN_VERSION_UNICODE=16.0.0 # UCD + related data
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
# Blocks-15.1.0.txt
|
||||
# Date: 2023-07-28, 15:47:20 GMT
|
||||
# © 2023 Unicode®, Inc.
|
||||
# For terms of use, see https://www.unicode.org/terms_of_use.html
|
||||
# Blocks-16.0.0.txt
|
||||
# Date: 2024-02-02
|
||||
# © 2024 Unicode®, Inc.
|
||||
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
|
||||
# For terms of use and license, see https://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Unicode Character Database
|
||||
# For documentation, see https://www.unicode.org/reports/tr44/
|
||||
|
|
@ -217,6 +218,7 @@ FFF0..FFFF; Specials
|
|||
10500..1052F; Elbasan
|
||||
10530..1056F; Caucasian Albanian
|
||||
10570..105BF; Vithkuqi
|
||||
105C0..105FF; Todhri
|
||||
10600..1077F; Linear A
|
||||
10780..107BF; Latin Extended-F
|
||||
10800..1083F; Cypriot Syllabary
|
||||
|
|
@ -239,6 +241,7 @@ FFF0..FFFF; Specials
|
|||
10C00..10C4F; Old Turkic
|
||||
10C80..10CFF; Old Hungarian
|
||||
10D00..10D3F; Hanifi Rohingya
|
||||
10D40..10D8F; Garay
|
||||
10E60..10E7F; Rumi Numeral Symbols
|
||||
10E80..10EBF; Yezidi
|
||||
10EC0..10EFF; Arabic Extended-C
|
||||
|
|
@ -258,12 +261,14 @@ FFF0..FFFF; Specials
|
|||
11280..112AF; Multani
|
||||
112B0..112FF; Khudawadi
|
||||
11300..1137F; Grantha
|
||||
11380..113FF; Tulu-Tigalari
|
||||
11400..1147F; Newa
|
||||
11480..114DF; Tirhuta
|
||||
11580..115FF; Siddham
|
||||
11600..1165F; Modi
|
||||
11660..1167F; Mongolian Supplement
|
||||
11680..116CF; Takri
|
||||
116D0..116FF; Myanmar Extended-C
|
||||
11700..1174F; Ahom
|
||||
11800..1184F; Dogra
|
||||
118A0..118FF; Warang Citi
|
||||
|
|
@ -274,6 +279,7 @@ FFF0..FFFF; Specials
|
|||
11AB0..11ABF; Unified Canadian Aboriginal Syllabics Extended-A
|
||||
11AC0..11AFF; Pau Cin Hau
|
||||
11B00..11B5F; Devanagari Extended-A
|
||||
11BC0..11BFF; Sunuwar
|
||||
11C00..11C6F; Bhaiksuki
|
||||
11C70..11CBF; Marchen
|
||||
11D00..11D5F; Masaram Gondi
|
||||
|
|
@ -288,12 +294,15 @@ FFF0..FFFF; Specials
|
|||
12F90..12FFF; Cypro-Minoan
|
||||
13000..1342F; Egyptian Hieroglyphs
|
||||
13430..1345F; Egyptian Hieroglyph Format Controls
|
||||
13460..143FF; Egyptian Hieroglyphs Extended-A
|
||||
14400..1467F; Anatolian Hieroglyphs
|
||||
16100..1613F; Gurung Khema
|
||||
16800..16A3F; Bamum Supplement
|
||||
16A40..16A6F; Mro
|
||||
16A70..16ACF; Tangsa
|
||||
16AD0..16AFF; Bassa Vah
|
||||
16B00..16B8F; Pahawh Hmong
|
||||
16D40..16D7F; Kirat Rai
|
||||
16E40..16E9F; Medefaidrin
|
||||
16F00..16F9F; Miao
|
||||
16FE0..16FFF; Ideographic Symbols and Punctuation
|
||||
|
|
@ -308,6 +317,7 @@ FFF0..FFFF; Specials
|
|||
1B170..1B2FF; Nushu
|
||||
1BC00..1BC9F; Duployan
|
||||
1BCA0..1BCAF; Shorthand Format Controls
|
||||
1CC00..1CEBF; Symbols for Legacy Computing Supplement
|
||||
1CF00..1CFCF; Znamenny Musical Notation
|
||||
1D000..1D0FF; Byzantine Musical Symbols
|
||||
1D100..1D1FF; Musical Symbols
|
||||
|
|
@ -325,6 +335,7 @@ FFF0..FFFF; Specials
|
|||
1E290..1E2BF; Toto
|
||||
1E2C0..1E2FF; Wancho
|
||||
1E4D0..1E4FF; Nag Mundari
|
||||
1E5D0..1E5FF; Ol Onal
|
||||
1E7E0..1E7FF; Ethiopic Extended-B
|
||||
1E800..1E8DF; Mende Kikakui
|
||||
1E900..1E95F; Adlam
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,8 +1,8 @@
|
|||
# WordBreakProperty-15.1.0.txt
|
||||
# Date: 2023-03-31, 03:19:05 GMT
|
||||
# © 2023 Unicode®, Inc.
|
||||
# WordBreakProperty-16.0.0.txt
|
||||
# Date: 2024-07-29, 16:27:36 GMT
|
||||
# © 2024 Unicode®, Inc.
|
||||
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
|
||||
# For terms of use, see https://www.unicode.org/terms_of_use.html
|
||||
# For terms of use and license, see https://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Unicode Character Database
|
||||
# For documentation, see https://www.unicode.org/reports/tr44/
|
||||
|
|
@ -91,7 +91,7 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
|
|||
0825..0827 ; Extend # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
|
||||
0829..082D ; Extend # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
|
||||
0859..085B ; Extend # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
|
||||
0898..089F ; Extend # Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
|
||||
0897..089F ; Extend # Mn [9] ARABIC PEPET..ARABIC HALF MADDA OVER MADDA
|
||||
08CA..08E1 ; Extend # Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
|
||||
08E3..0902 ; Extend # Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
|
||||
0903 ; Extend # Mc DEVANAGARI SIGN VISARGA
|
||||
|
|
@ -407,8 +407,9 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
|
|||
10A3F ; Extend # Mn KHAROSHTHI VIRAMA
|
||||
10AE5..10AE6 ; Extend # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
|
||||
10D24..10D27 ; Extend # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
|
||||
10D69..10D6D ; Extend # Mn [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK
|
||||
10EAB..10EAC ; Extend # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
|
||||
10EFD..10EFF ; Extend # Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
|
||||
10EFC..10EFF ; Extend # Mn [4] ARABIC COMBINING ALEF OVERLAY..ARABIC SMALL LOW WORD MADDA
|
||||
10F46..10F50 ; Extend # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
|
||||
10F82..10F85 ; Extend # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
|
||||
11000 ; Extend # Mc BRAHMI SIGN CANDRABINDU
|
||||
|
|
@ -461,6 +462,17 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
|
|||
11362..11363 ; Extend # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
|
||||
11366..1136C ; Extend # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
|
||||
11370..11374 ; Extend # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
|
||||
113B8..113BA ; Extend # Mc [3] TULU-TIGALARI VOWEL SIGN AA..TULU-TIGALARI VOWEL SIGN II
|
||||
113BB..113C0 ; Extend # Mn [6] TULU-TIGALARI VOWEL SIGN U..TULU-TIGALARI VOWEL SIGN VOCALIC LL
|
||||
113C2 ; Extend # Mc TULU-TIGALARI VOWEL SIGN EE
|
||||
113C5 ; Extend # Mc TULU-TIGALARI VOWEL SIGN AI
|
||||
113C7..113CA ; Extend # Mc [4] TULU-TIGALARI VOWEL SIGN OO..TULU-TIGALARI SIGN CANDRA ANUNASIKA
|
||||
113CC..113CD ; Extend # Mc [2] TULU-TIGALARI SIGN ANUSVARA..TULU-TIGALARI SIGN VISARGA
|
||||
113CE ; Extend # Mn TULU-TIGALARI SIGN VIRAMA
|
||||
113CF ; Extend # Mc TULU-TIGALARI SIGN LOOPED VIRAMA
|
||||
113D0 ; Extend # Mn TULU-TIGALARI CONJOINER
|
||||
113D2 ; Extend # Mn TULU-TIGALARI GEMINATION MARK
|
||||
113E1..113E2 ; Extend # Mn [2] TULU-TIGALARI VEDIC TONE SVARITA..TULU-TIGALARI VEDIC TONE ANUDATTA
|
||||
11435..11437 ; Extend # Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
|
||||
11438..1143F ; Extend # Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
|
||||
11440..11441 ; Extend # Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
|
||||
|
|
@ -496,7 +508,9 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
|
|||
116B0..116B5 ; Extend # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
|
||||
116B6 ; Extend # Mc TAKRI SIGN VIRAMA
|
||||
116B7 ; Extend # Mn TAKRI SIGN NUKTA
|
||||
1171D..1171F ; Extend # Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
|
||||
1171D ; Extend # Mn AHOM CONSONANT SIGN MEDIAL LA
|
||||
1171E ; Extend # Mc AHOM CONSONANT SIGN MEDIAL RA
|
||||
1171F ; Extend # Mn AHOM CONSONANT SIGN MEDIAL LIGATING RA
|
||||
11720..11721 ; Extend # Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
|
||||
11722..11725 ; Extend # Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
|
||||
11726 ; Extend # Mc AHOM VOWEL SIGN E
|
||||
|
|
@ -563,8 +577,12 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
|
|||
11F40 ; Extend # Mn KAWI VOWEL SIGN EU
|
||||
11F41 ; Extend # Mc KAWI SIGN KILLER
|
||||
11F42 ; Extend # Mn KAWI CONJOINER
|
||||
11F5A ; Extend # Mn KAWI SIGN NUKTA
|
||||
13440 ; Extend # Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
|
||||
13447..13455 ; Extend # Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
|
||||
1611E..16129 ; Extend # Mn [12] GURUNG KHEMA VOWEL SIGN AA..GURUNG KHEMA VOWEL LENGTH MARK
|
||||
1612A..1612C ; Extend # Mc [3] GURUNG KHEMA CONSONANT SIGN MEDIAL YA..GURUNG KHEMA CONSONANT SIGN MEDIAL HA
|
||||
1612D..1612F ; Extend # Mn [3] GURUNG KHEMA SIGN ANUSVARA..GURUNG KHEMA SIGN THOLHOMA
|
||||
16AF0..16AF4 ; Extend # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
|
||||
16B30..16B36 ; Extend # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
|
||||
16F4F ; Extend # Mn MIAO SIGN CONSONANT MODIFIER BAR
|
||||
|
|
@ -598,13 +616,14 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
|
|||
1E2AE ; Extend # Mn TOTO SIGN RISING TONE
|
||||
1E2EC..1E2EF ; Extend # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
|
||||
1E4EC..1E4EF ; Extend # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
|
||||
1E5EE..1E5EF ; Extend # Mn [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR
|
||||
1E8D0..1E8D6 ; Extend # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
|
||||
1E944..1E94A ; Extend # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
|
||||
1F3FB..1F3FF ; Extend # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
|
||||
E0020..E007F ; Extend # Cf [96] TAG SPACE..CANCEL TAG
|
||||
E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
|
||||
|
||||
# Total code points: 2554
|
||||
# Total code points: 2605
|
||||
|
||||
# ================================================
|
||||
|
||||
|
|
@ -877,7 +896,7 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
|
|||
1C4D..1C4F ; ALetter # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
|
||||
1C5A..1C77 ; ALetter # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
|
||||
1C78..1C7D ; ALetter # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
|
||||
1C80..1C88 ; ALetter # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
|
||||
1C80..1C8A ; ALetter # L& [11] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER TJE
|
||||
1C90..1CBA ; ALetter # L& [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
|
||||
1CBD..1CBF ; ALetter # L& [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
|
||||
1CE9..1CEC ; ALetter # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
|
||||
|
|
@ -983,10 +1002,10 @@ A788 ; ALetter # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
|
|||
A789..A78A ; ALetter # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
|
||||
A78B..A78E ; ALetter # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
|
||||
A78F ; ALetter # Lo LATIN LETTER SINOLOGICAL DOT
|
||||
A790..A7CA ; ALetter # L& [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
|
||||
A790..A7CD ; ALetter # L& [62] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH DIAGONAL STROKE
|
||||
A7D0..A7D1 ; ALetter # L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
|
||||
A7D3 ; ALetter # L& LATIN SMALL LETTER DOUBLE THORN
|
||||
A7D5..A7D9 ; ALetter # L& [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
|
||||
A7D5..A7DC ; ALetter # L& [8] LATIN SMALL LETTER DOUBLE WYNN..LATIN CAPITAL LETTER LAMBDA WITH STROKE
|
||||
A7F2..A7F4 ; ALetter # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
|
||||
A7F5..A7F6 ; ALetter # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
|
||||
A7F7 ; ALetter # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
|
||||
|
|
@ -1077,6 +1096,7 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
|
|||
105A3..105B1 ; ALetter # L& [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
|
||||
105B3..105B9 ; ALetter # L& [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
|
||||
105BB..105BC ; ALetter # L& [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
|
||||
105C0..105F3 ; ALetter # Lo [52] TODHRI LETTER A..TODHRI LETTER OO
|
||||
10600..10736 ; ALetter # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
|
||||
10740..10755 ; ALetter # Lo [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
|
||||
10760..10767 ; ALetter # Lo [8] LINEAR A SIGN A800..LINEAR A SIGN A807
|
||||
|
|
@ -1113,8 +1133,15 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
|
|||
10C80..10CB2 ; ALetter # L& [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
|
||||
10CC0..10CF2 ; ALetter # L& [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
|
||||
10D00..10D23 ; ALetter # Lo [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
|
||||
10D4A..10D4D ; ALetter # Lo [4] GARAY VOWEL SIGN A..GARAY VOWEL SIGN EE
|
||||
10D4E ; ALetter # Lm GARAY VOWEL LENGTH MARK
|
||||
10D4F ; ALetter # Lo GARAY SUKUN
|
||||
10D50..10D65 ; ALetter # L& [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA
|
||||
10D6F ; ALetter # Lm GARAY REDUPLICATION MARK
|
||||
10D70..10D85 ; ALetter # L& [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA
|
||||
10E80..10EA9 ; ALetter # Lo [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
|
||||
10EB0..10EB1 ; ALetter # Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
|
||||
10EC2..10EC4 ; ALetter # Lo [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW
|
||||
10F00..10F1C ; ALetter # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
|
||||
10F27 ; ALetter # Lo OLD SOGDIAN LIGATURE AYIN-DALETH
|
||||
10F30..10F45 ; ALetter # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
|
||||
|
|
@ -1153,6 +1180,13 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
|
|||
1133D ; ALetter # Lo GRANTHA SIGN AVAGRAHA
|
||||
11350 ; ALetter # Lo GRANTHA OM
|
||||
1135D..11361 ; ALetter # Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
|
||||
11380..11389 ; ALetter # Lo [10] TULU-TIGALARI LETTER A..TULU-TIGALARI LETTER VOCALIC LL
|
||||
1138B ; ALetter # Lo TULU-TIGALARI LETTER EE
|
||||
1138E ; ALetter # Lo TULU-TIGALARI LETTER AI
|
||||
11390..113B5 ; ALetter # Lo [38] TULU-TIGALARI LETTER OO..TULU-TIGALARI LETTER LLLA
|
||||
113B7 ; ALetter # Lo TULU-TIGALARI SIGN AVAGRAHA
|
||||
113D1 ; ALetter # Lo TULU-TIGALARI REPHA
|
||||
113D3 ; ALetter # Lo TULU-TIGALARI SIGN PLUTA
|
||||
11400..11434 ; ALetter # Lo [53] NEWA LETTER A..NEWA LETTER HA
|
||||
11447..1144A ; ALetter # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
|
||||
1145F..11461 ; ALetter # Lo [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA
|
||||
|
|
@ -1185,6 +1219,7 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
|
|||
11A5C..11A89 ; ALetter # Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
|
||||
11A9D ; ALetter # Lo SOYOMBO MARK PLUTA
|
||||
11AB0..11AF8 ; ALetter # Lo [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL
|
||||
11BC0..11BE0 ; ALetter # Lo [33] SUNUWAR LETTER DEVI..SUNUWAR LETTER KLOKO
|
||||
11C00..11C08 ; ALetter # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
|
||||
11C0A..11C2E ; ALetter # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
|
||||
11C40 ; ALetter # Lo BHAIKSUKI SIGN AVAGRAHA
|
||||
|
|
@ -1208,7 +1243,9 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
|
|||
12F90..12FF0 ; ALetter # Lo [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
|
||||
13000..1342F ; ALetter # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
|
||||
13441..13446 ; ALetter # Lo [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
|
||||
13460..143FA ; ALetter # Lo [3995] EGYPTIAN HIEROGLYPH-13460..EGYPTIAN HIEROGLYPH-143FA
|
||||
14400..14646 ; ALetter # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
|
||||
16100..1611D ; ALetter # Lo [30] GURUNG KHEMA LETTER A..GURUNG KHEMA LETTER SA
|
||||
16800..16A38 ; ALetter # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
|
||||
16A40..16A5E ; ALetter # Lo [31] MRO LETTER TA..MRO LETTER TEK
|
||||
16A70..16ABE ; ALetter # Lo [79] TANGSA LETTER OZ..TANGSA LETTER ZA
|
||||
|
|
@ -1217,6 +1254,9 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
|
|||
16B40..16B43 ; ALetter # Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
|
||||
16B63..16B77 ; ALetter # Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
|
||||
16B7D..16B8F ; ALetter # Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
|
||||
16D40..16D42 ; ALetter # Lm [3] KIRAT RAI SIGN ANUSVARA..KIRAT RAI SIGN VISARGA
|
||||
16D43..16D6A ; ALetter # Lo [40] KIRAT RAI LETTER A..KIRAT RAI VOWEL SIGN AU
|
||||
16D6B..16D6C ; ALetter # Lm [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT
|
||||
16E40..16E7F ; ALetter # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
|
||||
16F00..16F4A ; ALetter # Lo [75] MIAO LETTER PA..MIAO LETTER RTE
|
||||
16F50 ; ALetter # Lo MIAO LETTER NASALIZATION
|
||||
|
|
@ -1269,6 +1309,8 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
|
|||
1E2C0..1E2EB ; ALetter # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH
|
||||
1E4D0..1E4EA ; ALetter # Lo [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
|
||||
1E4EB ; ALetter # Lm NAG MUNDARI SIGN OJOD
|
||||
1E5D0..1E5ED ; ALetter # Lo [30] OL ONAL LETTER O..OL ONAL LETTER EG
|
||||
1E5F0 ; ALetter # Lo OL ONAL SIGN HODDOND
|
||||
1E7E0..1E7E6 ; ALetter # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
|
||||
1E7E8..1E7EB ; ALetter # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
|
||||
1E7ED..1E7EE ; ALetter # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
|
||||
|
|
@ -1313,7 +1355,7 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
|
|||
1F150..1F169 ; ALetter # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
|
||||
1F170..1F189 ; ALetter # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
|
||||
|
||||
# Total code points: 29490
|
||||
# Total code points: 33791
|
||||
|
||||
# ================================================
|
||||
|
||||
|
|
@ -1339,14 +1381,12 @@ FF1A ; MidLetter # Po FULLWIDTH COLON
|
|||
066C ; MidNum # Po ARABIC THOUSANDS SEPARATOR
|
||||
07F8 ; MidNum # Po NKO COMMA
|
||||
2044 ; MidNum # Sm FRACTION SLASH
|
||||
FE10 ; MidNum # Po PRESENTATION FORM FOR VERTICAL COMMA
|
||||
FE14 ; MidNum # Po PRESENTATION FORM FOR VERTICAL SEMICOLON
|
||||
FE50 ; MidNum # Po SMALL COMMA
|
||||
FE54 ; MidNum # Po SMALL SEMICOLON
|
||||
FF0C ; MidNum # Po FULLWIDTH COMMA
|
||||
FF1B ; MidNum # Po FULLWIDTH SEMICOLON
|
||||
|
||||
# Total code points: 15
|
||||
# Total code points: 13
|
||||
|
||||
# ================================================
|
||||
|
||||
|
|
@ -1390,6 +1430,7 @@ FF0E ; MidNumLet # Po FULLWIDTH FULL STOP
|
|||
1810..1819 ; Numeric # Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
|
||||
1946..194F ; Numeric # Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
|
||||
19D0..19D9 ; Numeric # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
|
||||
19DA ; Numeric # No NEW TAI LUE THAM DIGIT ONE
|
||||
1A80..1A89 ; Numeric # Nd [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE
|
||||
1A90..1A99 ; Numeric # Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
|
||||
1B50..1B59 ; Numeric # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
|
||||
|
|
@ -1406,6 +1447,7 @@ ABF0..ABF9 ; Numeric # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT N
|
|||
FF10..FF19 ; Numeric # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
|
||||
104A0..104A9 ; Numeric # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
|
||||
10D30..10D39 ; Numeric # Nd [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
|
||||
10D40..10D49 ; Numeric # Nd [10] GARAY DIGIT ZERO..GARAY DIGIT NINE
|
||||
11066..1106F ; Numeric # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
|
||||
110BD ; Numeric # Cf KAITHI NUMBER SIGN
|
||||
110CD ; Numeric # Cf KAITHI NUMBER SIGN ABOVE
|
||||
|
|
@ -1417,24 +1459,30 @@ FF10..FF19 ; Numeric # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
|
|||
114D0..114D9 ; Numeric # Nd [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
|
||||
11650..11659 ; Numeric # Nd [10] MODI DIGIT ZERO..MODI DIGIT NINE
|
||||
116C0..116C9 ; Numeric # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
|
||||
116D0..116E3 ; Numeric # Nd [20] MYANMAR PAO DIGIT ZERO..MYANMAR EASTERN PWO KAREN DIGIT NINE
|
||||
11730..11739 ; Numeric # Nd [10] AHOM DIGIT ZERO..AHOM DIGIT NINE
|
||||
118E0..118E9 ; Numeric # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
|
||||
11950..11959 ; Numeric # Nd [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE
|
||||
11BF0..11BF9 ; Numeric # Nd [10] SUNUWAR DIGIT ZERO..SUNUWAR DIGIT NINE
|
||||
11C50..11C59 ; Numeric # Nd [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
|
||||
11D50..11D59 ; Numeric # Nd [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
|
||||
11DA0..11DA9 ; Numeric # Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
|
||||
11F50..11F59 ; Numeric # Nd [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
|
||||
16130..16139 ; Numeric # Nd [10] GURUNG KHEMA DIGIT ZERO..GURUNG KHEMA DIGIT NINE
|
||||
16A60..16A69 ; Numeric # Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE
|
||||
16AC0..16AC9 ; Numeric # Nd [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
|
||||
16B50..16B59 ; Numeric # Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
|
||||
16D70..16D79 ; Numeric # Nd [10] KIRAT RAI DIGIT ZERO..KIRAT RAI DIGIT NINE
|
||||
1CCF0..1CCF9 ; Numeric # Nd [10] OUTLINED DIGIT ZERO..OUTLINED DIGIT NINE
|
||||
1D7CE..1D7FF ; Numeric # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
|
||||
1E140..1E149 ; Numeric # Nd [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
|
||||
1E2F0..1E2F9 ; Numeric # Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
|
||||
1E4F0..1E4F9 ; Numeric # Nd [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
|
||||
1E5F1..1E5FA ; Numeric # Nd [10] OL ONAL DIGIT ZERO..OL ONAL DIGIT NINE
|
||||
1E950..1E959 ; Numeric # Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
|
||||
1FBF0..1FBF9 ; Numeric # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
|
||||
|
||||
# Total code points: 693
|
||||
# Total code points: 774
|
||||
|
||||
# ================================================
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ BLOCKS_SRC_LOCAL="./Blocks.txt"
|
|||
UNICODE_DATA_SRC_HREF="https://www.unicode.org/Public/$KEYMAN_VERSION_UNICODE/ucd/UnicodeData.txt"
|
||||
UNICODE_DATA_SRC_LOCAL="./UnicodeData.txt"
|
||||
|
||||
# Used by common/models/wordbreakers for the default Unicode wordbreaker.
|
||||
# Used by web/src/engine/predictive-text/wordbreakers for the default Unicode wordbreaker.
|
||||
WORDBREAK_PROP_SRC_HREF="https://www.unicode.org/Public/$KEYMAN_VERSION_UNICODE/ucd/auxiliary/WordBreakProperty.txt"
|
||||
WORDBREAK_PROP_SRC_LOCAL="./WordBreakProperty.txt"
|
||||
|
||||
|
|
@ -55,4 +55,4 @@ do_download() {
|
|||
downloadPropertyFile "${EMOJI_DATA_SRC_HREF}" "${EMOJI_DATA_SRC_LOCAL}"
|
||||
}
|
||||
|
||||
builder_run_action download do_download
|
||||
builder_run_action download do_download
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
# emoji-data.txt
|
||||
# Date: 2023-02-01, 02:22:54 GMT
|
||||
# © 2023 Unicode®, Inc.
|
||||
# Date: 2024-05-01, 21:25:24 GMT
|
||||
# © 2024 Unicode®, Inc.
|
||||
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
|
||||
# For terms of use, see https://www.unicode.org/terms_of_use.html
|
||||
# For terms of use and license, see https://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Emoji Data for UTS #51
|
||||
# Used with Emoji Version 15.1 and subsequent minor revisions (if any)
|
||||
# Used with Emoji Version 16.0 and subsequent minor revisions (if any)
|
||||
#
|
||||
# For documentation and usage, see https://www.unicode.org/reports/tr51
|
||||
#
|
||||
|
|
@ -407,6 +407,8 @@
|
|||
1FA80..1FA82 ; Emoji # E12.0 [3] (🪀..🪂) yo-yo..parachute
|
||||
1FA83..1FA86 ; Emoji # E13.0 [4] (🪃..🪆) boomerang..nesting dolls
|
||||
1FA87..1FA88 ; Emoji # E15.0 [2] (🪇..🪈) maracas..flute
|
||||
1FA89 ; Emoji # E16.0 [1] () harp
|
||||
1FA8F ; Emoji # E16.0 [1] () shovel
|
||||
1FA90..1FA95 ; Emoji # E12.0 [6] (🪐..🪕) ringed planet..banjo
|
||||
1FA96..1FAA8 ; Emoji # E13.0 [19] (🪖..🪨) military helmet..rock
|
||||
1FAA9..1FAAC ; Emoji # E14.0 [4] (🪩..🪬) mirror ball..hamsa
|
||||
|
|
@ -414,19 +416,24 @@
|
|||
1FAB0..1FAB6 ; Emoji # E13.0 [7] (🪰..🪶) fly..feather
|
||||
1FAB7..1FABA ; Emoji # E14.0 [4] (🪷..🪺) lotus..nest with eggs
|
||||
1FABB..1FABD ; Emoji # E15.0 [3] (🪻..🪽) hyacinth..wing
|
||||
1FABE ; Emoji # E16.0 [1] () leafless tree
|
||||
1FABF ; Emoji # E15.0 [1] (🪿) goose
|
||||
1FAC0..1FAC2 ; Emoji # E13.0 [3] (🫀..🫂) anatomical heart..people hugging
|
||||
1FAC3..1FAC5 ; Emoji # E14.0 [3] (🫃..🫅) pregnant man..person with crown
|
||||
1FAC6 ; Emoji # E16.0 [1] () fingerprint
|
||||
1FACE..1FACF ; Emoji # E15.0 [2] (🫎..🫏) moose..donkey
|
||||
1FAD0..1FAD6 ; Emoji # E13.0 [7] (🫐..🫖) blueberries..teapot
|
||||
1FAD7..1FAD9 ; Emoji # E14.0 [3] (🫗..🫙) pouring liquid..jar
|
||||
1FADA..1FADB ; Emoji # E15.0 [2] (🫚..🫛) ginger root..pea pod
|
||||
1FADC ; Emoji # E16.0 [1] () root vegetable
|
||||
1FADF ; Emoji # E16.0 [1] () splatter
|
||||
1FAE0..1FAE7 ; Emoji # E14.0 [8] (🫠..🫧) melting face..bubbles
|
||||
1FAE8 ; Emoji # E15.0 [1] (🫨) shaking face
|
||||
1FAE9 ; Emoji # E16.0 [1] () face with bags under eyes
|
||||
1FAF0..1FAF6 ; Emoji # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
|
||||
1FAF7..1FAF8 ; Emoji # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
|
||||
|
||||
# Total elements: 1424
|
||||
# Total elements: 1431
|
||||
|
||||
# ================================================
|
||||
|
||||
|
|
@ -696,6 +703,8 @@
|
|||
1FA80..1FA82 ; Emoji_Presentation # E12.0 [3] (🪀..🪂) yo-yo..parachute
|
||||
1FA83..1FA86 ; Emoji_Presentation # E13.0 [4] (🪃..🪆) boomerang..nesting dolls
|
||||
1FA87..1FA88 ; Emoji_Presentation # E15.0 [2] (🪇..🪈) maracas..flute
|
||||
1FA89 ; Emoji_Presentation # E16.0 [1] () harp
|
||||
1FA8F ; Emoji_Presentation # E16.0 [1] () shovel
|
||||
1FA90..1FA95 ; Emoji_Presentation # E12.0 [6] (🪐..🪕) ringed planet..banjo
|
||||
1FA96..1FAA8 ; Emoji_Presentation # E13.0 [19] (🪖..🪨) military helmet..rock
|
||||
1FAA9..1FAAC ; Emoji_Presentation # E14.0 [4] (🪩..🪬) mirror ball..hamsa
|
||||
|
|
@ -703,19 +712,24 @@
|
|||
1FAB0..1FAB6 ; Emoji_Presentation # E13.0 [7] (🪰..🪶) fly..feather
|
||||
1FAB7..1FABA ; Emoji_Presentation # E14.0 [4] (🪷..🪺) lotus..nest with eggs
|
||||
1FABB..1FABD ; Emoji_Presentation # E15.0 [3] (🪻..🪽) hyacinth..wing
|
||||
1FABE ; Emoji_Presentation # E16.0 [1] () leafless tree
|
||||
1FABF ; Emoji_Presentation # E15.0 [1] (🪿) goose
|
||||
1FAC0..1FAC2 ; Emoji_Presentation # E13.0 [3] (🫀..🫂) anatomical heart..people hugging
|
||||
1FAC3..1FAC5 ; Emoji_Presentation # E14.0 [3] (🫃..🫅) pregnant man..person with crown
|
||||
1FAC6 ; Emoji_Presentation # E16.0 [1] () fingerprint
|
||||
1FACE..1FACF ; Emoji_Presentation # E15.0 [2] (🫎..🫏) moose..donkey
|
||||
1FAD0..1FAD6 ; Emoji_Presentation # E13.0 [7] (🫐..🫖) blueberries..teapot
|
||||
1FAD7..1FAD9 ; Emoji_Presentation # E14.0 [3] (🫗..🫙) pouring liquid..jar
|
||||
1FADA..1FADB ; Emoji_Presentation # E15.0 [2] (🫚..🫛) ginger root..pea pod
|
||||
1FADC ; Emoji_Presentation # E16.0 [1] () root vegetable
|
||||
1FADF ; Emoji_Presentation # E16.0 [1] () splatter
|
||||
1FAE0..1FAE7 ; Emoji_Presentation # E14.0 [8] (🫠..🫧) melting face..bubbles
|
||||
1FAE8 ; Emoji_Presentation # E15.0 [1] (🫨) shaking face
|
||||
1FAE9 ; Emoji_Presentation # E16.0 [1] () face with bags under eyes
|
||||
1FAF0..1FAF6 ; Emoji_Presentation # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
|
||||
1FAF7..1FAF8 ; Emoji_Presentation # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
|
||||
|
||||
# Total elements: 1205
|
||||
# Total elements: 1212
|
||||
|
||||
# ================================================
|
||||
|
||||
|
|
@ -1289,7 +1303,9 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (..) tag space..c
|
|||
1FA80..1FA82 ; Extended_Pictographic# E12.0 [3] (🪀..🪂) yo-yo..parachute
|
||||
1FA83..1FA86 ; Extended_Pictographic# E13.0 [4] (🪃..🪆) boomerang..nesting dolls
|
||||
1FA87..1FA88 ; Extended_Pictographic# E15.0 [2] (🪇..🪈) maracas..flute
|
||||
1FA89..1FA8F ; Extended_Pictographic# E0.0 [7] (..) <reserved-1FA89>..<reserved-1FA8F>
|
||||
1FA89 ; Extended_Pictographic# E16.0 [1] () harp
|
||||
1FA8A..1FA8E ; Extended_Pictographic# E0.0 [5] (..) <reserved-1FA8A>..<reserved-1FA8E>
|
||||
1FA8F ; Extended_Pictographic# E16.0 [1] () shovel
|
||||
1FA90..1FA95 ; Extended_Pictographic# E12.0 [6] (🪐..🪕) ringed planet..banjo
|
||||
1FA96..1FAA8 ; Extended_Pictographic# E13.0 [19] (🪖..🪨) military helmet..rock
|
||||
1FAA9..1FAAC ; Extended_Pictographic# E14.0 [4] (🪩..🪬) mirror ball..hamsa
|
||||
|
|
@ -1297,19 +1313,23 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (..) tag space..c
|
|||
1FAB0..1FAB6 ; Extended_Pictographic# E13.0 [7] (🪰..🪶) fly..feather
|
||||
1FAB7..1FABA ; Extended_Pictographic# E14.0 [4] (🪷..🪺) lotus..nest with eggs
|
||||
1FABB..1FABD ; Extended_Pictographic# E15.0 [3] (🪻..🪽) hyacinth..wing
|
||||
1FABE ; Extended_Pictographic# E0.0 [1] () <reserved-1FABE>
|
||||
1FABE ; Extended_Pictographic# E16.0 [1] () leafless tree
|
||||
1FABF ; Extended_Pictographic# E15.0 [1] (🪿) goose
|
||||
1FAC0..1FAC2 ; Extended_Pictographic# E13.0 [3] (🫀..🫂) anatomical heart..people hugging
|
||||
1FAC3..1FAC5 ; Extended_Pictographic# E14.0 [3] (🫃..🫅) pregnant man..person with crown
|
||||
1FAC6..1FACD ; Extended_Pictographic# E0.0 [8] (..) <reserved-1FAC6>..<reserved-1FACD>
|
||||
1FAC6 ; Extended_Pictographic# E16.0 [1] () fingerprint
|
||||
1FAC7..1FACD ; Extended_Pictographic# E0.0 [7] (..) <reserved-1FAC7>..<reserved-1FACD>
|
||||
1FACE..1FACF ; Extended_Pictographic# E15.0 [2] (🫎..🫏) moose..donkey
|
||||
1FAD0..1FAD6 ; Extended_Pictographic# E13.0 [7] (🫐..🫖) blueberries..teapot
|
||||
1FAD7..1FAD9 ; Extended_Pictographic# E14.0 [3] (🫗..🫙) pouring liquid..jar
|
||||
1FADA..1FADB ; Extended_Pictographic# E15.0 [2] (🫚..🫛) ginger root..pea pod
|
||||
1FADC..1FADF ; Extended_Pictographic# E0.0 [4] (..) <reserved-1FADC>..<reserved-1FADF>
|
||||
1FADC ; Extended_Pictographic# E16.0 [1] () root vegetable
|
||||
1FADD..1FADE ; Extended_Pictographic# E0.0 [2] (..) <reserved-1FADD>..<reserved-1FADE>
|
||||
1FADF ; Extended_Pictographic# E16.0 [1] () splatter
|
||||
1FAE0..1FAE7 ; Extended_Pictographic# E14.0 [8] (🫠..🫧) melting face..bubbles
|
||||
1FAE8 ; Extended_Pictographic# E15.0 [1] (🫨) shaking face
|
||||
1FAE9..1FAEF ; Extended_Pictographic# E0.0 [7] (..) <reserved-1FAE9>..<reserved-1FAEF>
|
||||
1FAE9 ; Extended_Pictographic# E16.0 [1] () face with bags under eyes
|
||||
1FAEA..1FAEF ; Extended_Pictographic# E0.0 [6] (..) <reserved-1FAEA>..<reserved-1FAEF>
|
||||
1FAF0..1FAF6 ; Extended_Pictographic# E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
|
||||
1FAF7..1FAF8 ; Extended_Pictographic# E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
|
||||
1FAF9..1FAFF ; Extended_Pictographic# E0.0 [7] (..) <reserved-1FAF9>..<reserved-1FAFF>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
|
|||
|
||||
cd "$THIS_SCRIPT_PATH"
|
||||
|
||||
platforms=(android/ ios/ linux/ mac/ web/ windows/ developer/ core/ common/models/)
|
||||
platforms=(android/ ios/ linux/ mac/ web/ windows/ developer/ core/)
|
||||
|
||||
builder_describe "Stats collector for Keyman PRs and issues
|
||||
|
||||
|
|
|
|||
|
|
@ -27,10 +27,9 @@
|
|||
"paths": {
|
||||
"@keymanapp/common-types": ["./common/web/types/src/main"],
|
||||
"@keymanapp/keyman": ["./web" ],
|
||||
"@keymanapp/models-types": ["./common/models/types"],
|
||||
"@keymanapp/models-templates": ["./common/models/templates"],
|
||||
"@keymanapp/models-wordbreakers": ["./common/models/wordbreakers"],
|
||||
"@keymanapp/web-utils": ["./common/web/utils"],
|
||||
"@keymanapp/models-templates": ["./web/src/engine/predictive-text/templates/"],
|
||||
"@keymanapp/models-wordbreakers": ["./web/src/engine/predictive-text/wordbreakers"],
|
||||
"@keymanapp/web-utils": ["./web/src/engine/common/web-utils"],
|
||||
"@keymanapp/lm-message-types": ["./web/src/engine/predictive-text/types"],
|
||||
"@keymanapp/keyman-version": ["./common/web/keyman-version"],
|
||||
"@keymanapp/ldml-keyboard-constants": [ "./core/include/ldml" ],
|
||||
|
|
|
|||
|
|
@ -2,16 +2,10 @@
|
|||
"references": [
|
||||
{ "path": "./core/include/ldml/tsconfig.json" },
|
||||
|
||||
{ "path": "./common/models/templates/tsconfig.json" },
|
||||
{ "path": "./common/models/types/tsconfig.json" },
|
||||
{ "path": "./common/models/wordbreakers/tsconfig.json" },
|
||||
{ "path": "./common/tools/hextobin/" },
|
||||
|
||||
{ "path": "./common/web/keyman-version" },
|
||||
{ "path": "./common/web/recorder/tsconfig.json" },
|
||||
{ "path": "./common/web/sentry-manager/src/tsconfig.json" },
|
||||
{ "path": "./common/web/types/" },
|
||||
{ "path": "./common/web/utils/tsconfig.json" },
|
||||
|
||||
{ "path": "./developer/src/common/web/test-helpers/tsconfig.json" },
|
||||
{ "path": "./developer/src/common/web/utils/tsconfig.json" },
|
||||
|
|
@ -38,11 +32,17 @@
|
|||
{ "path": "./resources/build/version/" },
|
||||
|
||||
{ "path": "./web/src/tsconfig.all.json" },
|
||||
{ "path": "./web/src/engine/common/web-utils" },
|
||||
{ "path": "./web/src/engine/predictive-text/types/" },
|
||||
{ "path": "./web/src/engine/predictive-text/templates" },
|
||||
{ "path": "./web/src/engine/predictive-text/wordbreakers" },
|
||||
{ "path": "./web/src/engine/predictive-text/worker-main/tsconfig.all.json" },
|
||||
{ "path": "./web/src/engine/predictive-text/worker-thread" },
|
||||
{ "path": "./web/src/engine/osk/gesture-processor/tsconfig.json" },
|
||||
{ "path": "./web/src/engine/osk/gesture-processor/src/tools/unit-test-resources/tsconfig.json" },
|
||||
{ "path": "./web/src/engine/sentry-manager" },
|
||||
|
||||
{ "path": "./web/src/tools/recorder-recorder" },
|
||||
// { "path": "./web/tools/recorder/tsconfig.json" },
|
||||
// { "path": "./web/tools/sourcemap-root/tsconfig.json" },
|
||||
]
|
||||
|
|
|
|||
4
web/.mocharc.json
Normal file
4
web/.mocharc.json
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"$schema": "https://json.schemastore.org/mocharc.json",
|
||||
"require": "tsx"
|
||||
}
|
||||
|
|
@ -84,10 +84,10 @@ graph TD;
|
|||
KeyboardSpec["/web/src/engine/keyboard"];
|
||||
JSProc["/web/src/engine/js-processor"];
|
||||
OSK-->KeyboardSpec;
|
||||
WebUtils["@keymanapp/web-utils<br>(/common/web/utils)"];
|
||||
WebUtils["@keymanapp/web-utils<br>(/web/src/engine/common/web-utils)"];
|
||||
KeyboardSpec---->WebUtils;
|
||||
Wordbreakers["@keymanapp/models-wordbreakers<br>(/common/models/wordbreakers)"];
|
||||
Models["@keymanapp/models-templates<br>(/common/models/templates)"];
|
||||
Wordbreakers["@keymanapp/models-wordbreakers<br>(/web/src/engine/predictive-text/wordbreakers)"];
|
||||
Models["@keymanapp/models-templates<br>(/web/src/engine/predictive-text/templates/)"];
|
||||
Models-->WebUtils;
|
||||
LMWorker["@keymanapp/lm-worker<br>(/web/src/engine/predictive-text/worker-thread)"];
|
||||
LMWorker-->Models;
|
||||
|
|
@ -116,8 +116,6 @@ graph TD;
|
|||
|
||||
subgraph ClassicWeb["`**ClassicWeb**
|
||||
Intermediate-level engine modules`"]
|
||||
Device["/web/src/engine/device-detect"];
|
||||
Device----->WebUtils;
|
||||
Elements["/web/src/engine/element-wrappers"];
|
||||
Elements-->JSProc;
|
||||
KeyboardStorage["/web/src/engine/keyboard-storage"];
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ builder_describe "Builds engine modules for Keyman Engine for Web (KMW)." \
|
|||
":app/webview A puppetable version of KMW designed for use in a host app's WebView" \
|
||||
":app/ui Builds KMW's desktop form-factor keyboard-selection UI modules" \
|
||||
":engine/attachment Subset used for detecting valid page contexts for use in text editing " \
|
||||
":engine/device-detect Subset used for device-detection " \
|
||||
":engine/dom-utils A common subset of function used for DOM calculations, layout, etc" \
|
||||
":engine/events Specialized classes utilized to support KMW API events" \
|
||||
":engine/element-wrappers Subset used to integrate with website elements" \
|
||||
|
|
@ -56,7 +55,6 @@ builder_describe_outputs \
|
|||
build:app/webview "/web/build/app/webview/${config}/keymanweb-webview.js" \
|
||||
build:app/ui "/web/build/app/ui/${config}/kmwuitoggle.js" \
|
||||
build:engine/attachment "/web/build/engine/attachment/lib/index.mjs" \
|
||||
build:engine/device-detect "/web/build/engine/device-detect/lib/index.mjs" \
|
||||
build:engine/dom-utils "/web/build/engine/dom-utils/obj/index.js" \
|
||||
build:engine/events "/web/build/engine/events/lib/index.mjs" \
|
||||
build:engine/element-wrappers "/web/build/engine/element-wrappers/lib/index.mjs" \
|
||||
|
|
@ -71,7 +69,7 @@ builder_describe_outputs \
|
|||
build:tools "/web/build/tools/building/sourcemap-root/index.js" \
|
||||
build:test-pages "/web/build/test-resources/sentry-manager.js"
|
||||
|
||||
BUNDLE_CMD="node ${KEYMAN_ROOT}/common/web/es-bundling/build/common-bundle.mjs"
|
||||
BUNDLE_CMD="node ${KEYMAN_ROOT}/web/src/tools/es-bundling/build/common-bundle.mjs"
|
||||
|
||||
#### Build action definitions ####
|
||||
|
||||
|
|
@ -146,7 +144,6 @@ coverage_action() {
|
|||
cd web
|
||||
}
|
||||
|
||||
builder_run_child_actions build:engine/device-detect
|
||||
builder_run_child_actions build:engine/dom-utils
|
||||
|
||||
builder_run_child_actions build:engine/keyboard
|
||||
|
|
@ -164,7 +161,7 @@ builder_run_child_actions build:engine/attachment
|
|||
# Uses engine/interfaces (due to resource-path config interface)
|
||||
builder_run_child_actions build:engine/keyboard-storage
|
||||
|
||||
# Uses engine/interfaces, engine/device-detect, engine/keyboard-storage, & engine/osk
|
||||
# Uses engine/interfaces, engine/keyboard-storage, & engine/osk
|
||||
builder_run_child_actions build:engine/main
|
||||
|
||||
# Uses all but engine/element-wrappers and engine/attachment
|
||||
|
|
|
|||
|
|
@ -63,10 +63,10 @@ if builder_start_action build; then
|
|||
|
||||
# Upload the sentry-configuration engine used by the mobile apps to sentry
|
||||
# Also, clean 'em first.
|
||||
for sourcemap in "$KEYMAN_ROOT/common/web/sentry-manager/build/lib/"*.map; do
|
||||
for sourcemap in "$KEYMAN_ROOT/web/src/engine/sentry-manager/build/lib/"*.map; do
|
||||
node "$KEYMAN_ROOT/web/build/tools/building/sourcemap-root/index.js" null "$sourcemap" --clean
|
||||
done
|
||||
web_sentry_upload "$KEYMAN_ROOT/common/web/sentry-manager/build/lib/"
|
||||
web_sentry_upload "$KEYMAN_ROOT/web/src/engine/sentry-manager/build/lib/"
|
||||
|
||||
# And, of course, the main build-products too
|
||||
web_sentry_upload "$KEYMAN_ROOT/web/build/app/webview/release/"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
|
||||
BUNDLE_CMD="node $KEYMAN_ROOT/common/web/es-bundling/build/common-bundle.mjs"
|
||||
BUNDLE_CMD="node $KEYMAN_ROOT/web/src/tools/es-bundling/build/common-bundle.mjs"
|
||||
|
||||
# Compiles all build products corresponding to the specified target.
|
||||
# This should be called from the working directory of a child project's
|
||||
|
|
|
|||
|
|
@ -17,11 +17,6 @@
|
|||
"types": "./build/engine/interfaces/obj/index.d.ts",
|
||||
"import": "./build/engine/interfaces/obj/index.js"
|
||||
},
|
||||
"./engine/device-detect": {
|
||||
"es6-bundling": "./src/engine/device-detect/src/index.ts",
|
||||
"types": "./build/engine/device-detect/obj/index.d.ts",
|
||||
"import": "./build/engine/device-detect/obj/index.js"
|
||||
},
|
||||
"./engine/dom-utils": {
|
||||
"es6-bundling": "./src/engine/dom-utils/src/index.ts",
|
||||
"types": "./build/engine/dom-utils/obj/index.d.ts",
|
||||
|
|
@ -114,7 +109,8 @@
|
|||
"@zip.js/zip.js": "^2.7.32",
|
||||
"c8": "^7.12.0",
|
||||
"jsdom": "^23.0.1",
|
||||
"mocha": "^10.0.0"
|
||||
"mocha": "^10.0.0",
|
||||
"tsx": "^4.19.0"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "gosh ./test.sh"
|
||||
|
|
@ -122,7 +118,7 @@
|
|||
"dependencies": {
|
||||
"@keymanapp/keyman-version": "*",
|
||||
"@keymanapp/lexical-model-layer": "*",
|
||||
"@keymanapp/models-types": "*",
|
||||
"@keymanapp/common-types": "*",
|
||||
"@keymanapp/recorder-core": "*",
|
||||
"@keymanapp/web-utils": "*",
|
||||
"core-js": "^3.34.0",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
import { KeymanEngine as KeymanEngineBase } from 'keyman/engine/main';
|
||||
import { Device as DeviceDetector } from 'keyman/engine/device-detect';
|
||||
import { KeymanEngine as KeymanEngineBase, DeviceDetector } from 'keyman/engine/main';
|
||||
import { getAbsoluteY } from 'keyman/engine/dom-utils';
|
||||
import { OutputTarget } from 'keyman/engine/element-wrappers';
|
||||
import {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
*/
|
||||
|
||||
import esbuild from 'esbuild';
|
||||
import { iifeConfiguration, prepareTslibTreeshaking } from '../../../../common/web/es-bundling/build/index.mjs';
|
||||
import { iifeConfiguration, prepareTslibTreeshaking } from '../../tools/es-bundling/build/index.mjs';
|
||||
|
||||
const commonConfig = {
|
||||
...iifeConfiguration,
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { EngineConfiguration, InitOptionSpec, InitOptionDefaults } from "keyman/
|
|||
import { buildMergedTransform } from '@keymanapp/models-templates';
|
||||
|
||||
import { type OnInsertTextFunc } from "./contextManager.js";
|
||||
import { Transform } from '@keymanapp/common-types';
|
||||
|
||||
export class WebviewConfiguration extends EngineConfiguration {
|
||||
private _embeddingApp: string;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { Mock, OutputTarget, Transcription, findCommonSubstringEndIndex, isEmpty
|
|||
import { KeyboardStub } from 'keyman/engine/keyboard-storage';
|
||||
import { ContextManagerBase } from 'keyman/engine/main';
|
||||
import { WebviewConfiguration } from './configuration.js';
|
||||
import { Transform } from '@keymanapp/common-types';
|
||||
|
||||
export type OnInsertTextFunc = (deleteLeft: number, text: string, deleteRight: number) => void;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,39 +5,43 @@
|
|||
## START STANDARD BUILD SCRIPT INCLUDE
|
||||
# adjust relative paths as necessary
|
||||
THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
|
||||
. "${THIS_SCRIPT%/*}/../../../resources/build/builder.inc.sh"
|
||||
. "${THIS_SCRIPT%/*}/../../../../../resources/build/builder.inc.sh"
|
||||
## END STANDARD BUILD SCRIPT INCLUDE
|
||||
|
||||
. "${KEYMAN_ROOT}/web/common.inc.sh"
|
||||
. "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
|
||||
|
||||
BUNDLE_CMD="node $KEYMAN_ROOT/common/web/es-bundling/build/common-bundle.mjs"
|
||||
SUBPROJECT_NAME=engine/common/web-utils
|
||||
BUILD_DIR="/web/src/engine/common/web-utils/build"
|
||||
|
||||
BUNDLE_CMD="node $KEYMAN_ROOT/web/src/tools/es-bundling/build/common-bundle.mjs"
|
||||
|
||||
################################ Main script ################################
|
||||
|
||||
builder_describe \
|
||||
"Compiles the web-oriented utility function module." \
|
||||
"@/common/web/keyman-version" \
|
||||
"@/common/web/es-bundling" \
|
||||
"@/web/src/tools/es-bundling" \
|
||||
clean configure build test \
|
||||
"--ci For use with action ${BUILDER_TERM_START}test${BUILDER_TERM_END} - emits CI-friendly test reports"
|
||||
|
||||
builder_describe_outputs \
|
||||
configure "/node_modules" \
|
||||
build "/common/web/utils/build/obj/index.js"
|
||||
build "${BUILD_DIR}/obj/index.js"
|
||||
|
||||
builder_parse "$@"
|
||||
|
||||
function do_build() {
|
||||
tsc --build "$THIS_SCRIPT_PATH/tsconfig.json"
|
||||
tsc --build $builder_verbose "$THIS_SCRIPT_PATH/tsconfig.json"
|
||||
|
||||
# May be useful one day, for building a mass .d.ts for KMW as a whole.
|
||||
# So... tsc does declaration-bundling on its own pretty well, at least for local development.
|
||||
tsc --emitDeclarationOnly --outFile ./build/lib/index.d.ts
|
||||
tsc --emitDeclarationOnly --outFile "${KEYMAN_ROOT}/${BUILD_DIR}/lib/index.d.ts"
|
||||
|
||||
# One of the functions (timedPromise) is quite helpful for automated testing, even in the DOM.
|
||||
# So, to make sure it's easily-accessible for the DOM-based tests...
|
||||
$BUNDLE_CMD "${KEYMAN_ROOT}/common/web/utils/build/obj/index.js" \
|
||||
--out "${KEYMAN_ROOT}/common/web/utils/build/lib/index.mjs" \
|
||||
$BUNDLE_CMD "${KEYMAN_ROOT}/${BUILD_DIR}/obj/index.js" \
|
||||
--out "${KEYMAN_ROOT}/${BUILD_DIR}/lib/index.mjs" \
|
||||
--format esm
|
||||
}
|
||||
|
||||
|
|
@ -56,4 +60,4 @@ function do_test() {
|
|||
builder_run_action configure verify_npm_setup
|
||||
builder_run_action clean rm -rf build/
|
||||
builder_run_action build do_build
|
||||
builder_run_action test do_test
|
||||
builder_run_action test do_test
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue