diff --git a/.gitignore b/.gitignore
index cc536b78a0..10e0178496 100644
--- a/.gitignore
+++ b/.gitignore
@@ -165,6 +165,7 @@ resources/environment.sh
/core/VERSION.md
**/node_modules/
+tsconfig.tsbuildinfo
# Windows system files
Thumbs.db
@@ -172,3 +173,8 @@ Thumbs.db
# Temporary file for logging scripts in xcode runs, see build-utils.sh for
# details
/xcodebuild-scripts.log
+
+#
+# Code coverage tools for JS/TS - nyc and c8
+#
+.nyc_output/
diff --git a/.nycrc.json b/.nycrc.json
new file mode 100644
index 0000000000..ee788b8046
--- /dev/null
+++ b/.nycrc.json
@@ -0,0 +1,6 @@
+{
+ "check-coverage": true,
+ "temp-directory": ".nyc_output",
+ "lines": 90,
+ "reporter": "text"
+}
diff --git a/common/web/input-processor/package.json b/common/web/input-processor/package.json
index 9c9fc2d3ab..53ea4b1cae 100644
--- a/common/web/input-processor/package.json
+++ b/common/web/input-processor/package.json
@@ -17,7 +17,7 @@
},
"homepage": "https://github.com/keymanapp/keyman#readme",
"devDependencies": {
- "@keymanapp/lexical-model-compiler": "*",
+ "@keymanapp/kmc": "*",
"@keymanapp/resources-gosh": "*",
"@types/node": "^11.9.4",
"chai": "^4.3.4",
diff --git a/common/web/input-processor/test.sh b/common/web/input-processor/test.sh
index 85a1b36103..0d93754c7e 100755
--- a/common/web/input-processor/test.sh
+++ b/common/web/input-processor/test.sh
@@ -61,8 +61,8 @@ if [ $FETCH_DEPS = true ]; then
fi
# Ensures that the lexical model compiler has been built locally.
-echo_heading "Preparing Lexical Model Compiler for test use"
-pushd "$KEYMAN_ROOT/developer/src/kmlmc/"
+echo_heading "Preparing Lexical Model Compiler (kmc-model) for test use"
+pushd "$KEYMAN_ROOT/developer/src/kmc-model/"
./build.sh
popd
diff --git a/common/web/keyman-version/.gitignore b/common/web/keyman-version/.gitignore
index 3e3464001b..7cedcbd35d 100644
--- a/common/web/keyman-version/.gitignore
+++ b/common/web/keyman-version/.gitignore
@@ -1,2 +1,5 @@
# version.inc.ts is generated during the build
-version.inc.ts
\ No newline at end of file
+version.inc.ts
+
+# keyman-version.mts (esm clone of version.inc.ts) is generated during the build
+keyman-version.mts
\ No newline at end of file
diff --git a/common/web/keyman-version/build.sh b/common/web/keyman-version/build.sh
index f3f6193926..7a31b762e5 100755
--- a/common/web/keyman-version/build.sh
+++ b/common/web/keyman-version/build.sh
@@ -37,7 +37,24 @@ if builder_has_action clean; then
fi
if builder_has_action build; then
- # Generate index.ts
+ # Generate keyman-version.mts
+ echo "
+ // Generated by common/web/keyman-version/build.sh
+ export default class KEYMAN_VERSION {
+ static readonly VERSION = \"$VERSION\";
+ static readonly VERSION_RELEASE =\"$VERSION_RELEASE\";
+ static readonly VERSION_MAJOR = \"$VERSION_MAJOR\";
+ static readonly VERSION_MINOR = \"$VERSION_MINOR\";
+ static readonly VERSION_PATCH = \"$VERSION_PATCH\";
+ static readonly TIER =\"$TIER\";
+ static readonly VERSION_TAG = \"$VERSION_TAG\";
+ static readonly VERSION_WITH_TAG = \"$VERSION_WITH_TAG\";
+ static readonly VERSION_ENVIRONMENT = \"$VERSION_ENVIRONMENT\";
+ static readonly SENTRY_RELEASE = \"release-$VERSION_WITH_TAG\";
+ }
+ " > ./keyman-version.mts
+
+ # Generate version.inc.ts -- used by TypeScript code that isn't yet modular
echo "
// Generated by common/web/keyman-version/build.sh
namespace com.keyman {
diff --git a/common/web/keyman-version/package.json b/common/web/keyman-version/package.json
index 2d81703ab6..ee72ffecd2 100644
--- a/common/web/keyman-version/package.json
+++ b/common/web/keyman-version/package.json
@@ -2,7 +2,10 @@
"name": "@keymanapp/keyman-version",
"description": "Keyman global version data",
"main": "./build/index.js",
- "exports": "./build/index.js",
+ "exports": {
+ ".": "./build/index.js",
+ "./keyman-version.mjs": "./build/keyman-version.mjs"
+ },
"scripts": {
"build": "echo 'Building @keymanapp/keyman-version' && tsc -b",
"clean": "tsc -b --clean"
diff --git a/common/web/keyman-version/tsconfig.esm.json b/common/web/keyman-version/tsconfig.esm.json
new file mode 100644
index 0000000000..1e72269873
--- /dev/null
+++ b/common/web/keyman-version/tsconfig.esm.json
@@ -0,0 +1,18 @@
+{
+ "extends": "../../../tsconfig-base.json",
+
+ "compilerOptions": {
+ "allowJs": false,
+ "declaration": true,
+ "module": "es2020",
+ "outDir": "./build/",
+ "baseUrl": ".",
+ "rootDir": ".",
+ "sourceMap": true,
+ "lib": ["es6"],
+ "target": "es6",
+ },
+ "include": [
+ "keyman-version.mts"
+ ]
+}
diff --git a/core/tests/unit/ldml/keyboards/meson.build b/core/tests/unit/ldml/keyboards/meson.build
index 1cb28d6cff..f833e2a4be 100644
--- a/core/tests/unit/ldml/keyboards/meson.build
+++ b/core/tests/unit/ldml/keyboards/meson.build
@@ -25,7 +25,7 @@ foreach kbd : tests
)
configure_file(
- command: kmc_cmd + ['@INPUT@', '--outFile', '@OUTPUT@'],
+ command: kmc_cmd + ['@INPUT@', '--out-file', '@OUTPUT@'],
output: kbd + '.kmx',
input: kbd + '.xml'
)
diff --git a/developer/src/.gitignore b/developer/src/.gitignore
index bbb1d73409..5e1280d2ca 100644
--- a/developer/src/.gitignore
+++ b/developer/src/.gitignore
@@ -31,7 +31,6 @@ inst/setup.inf
inst/setup.zip
inst/templates.wxs
inst/xml.wxs
-inst/kmlmc.wxs
inst/kmc.wxs
# /developer/TIKE/
@@ -87,7 +86,8 @@ tds_file.txt
# Breakpad files generated for Sentry
**/*.sym
-
-
+# All kmc projects have build/ folders
+kmc/build/
+kmc-*/build/
diff --git a/developer/src/Defines.mak b/developer/src/Defines.mak
index d534bc79b2..0a92bee695 100644
--- a/developer/src/Defines.mak
+++ b/developer/src/Defines.mak
@@ -12,10 +12,6 @@ DEVELOPER_PROGRAM=$(DEVELOPER_ROOT)\bin
DEVELOPER_OUTLIB=$(DEVELOPER_ROOT)\lib
DEVELOPER_DEBUGPATH=$(DEVELOPER_ROOT)\debug
-KEYMAN_MODELCOMPILER_ROOT=$(DEVELOPER_ROOT)\src\kmlmc
-KEYMAN_LDMLKEYBOARDCOMPILER_ROOT=$(DEVELOPER_ROOT)\src\kmc
-
-
DEVELOPER_DELPHIDPKPARAMS=-Q -B -GD -VT -^$C+ -^$D+ -^$J+ -^$L+ -^$O+ -^$Q- -^$R- -^$W+ -^$Y+ -E. $(DELPHIWARNINGS) -I$(DELPHIINCLUDES) -U$(DELPHIINCLUDES) -R$(DELPHIINCLUDES) -NSVcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Web;Soap;Winapi;System.Win -LE$(DEVELOPER_OUTLIB) -LN$(DEVELOPER_OUTLIB) -NSData -NUobj\Win32\$(TARGET_PATH)
DEVELOPER_DCC32DPK=cmd /c "$(DCC32PATH)\dcc32.exe" $(DEVELOPER_DELPHIDPKPARAMS)
diff --git a/developer/src/Makefile b/developer/src/Makefile
index 400c858ecb..b2059a0cd9 100644
--- a/developer/src/Makefile
+++ b/developer/src/Makefile
@@ -3,9 +3,9 @@
#
!ifdef NODELPHI
-TARGETS=build-tools kmcmpdll kmanalyze kmdecomp server kmlmc kmc
+TARGETS=build-tools kmcmpdll kmanalyze kmdecomp server kmc
!else
-TARGETS=build-tools kmcmpdll kmcomp kmanalyze kmconvert tike samples setup inst kmdecomp server kmlmc kmc
+TARGETS=build-tools kmcmpdll kmcomp kmanalyze kmconvert tike samples setup inst kmdecomp server kmc
!endif
EXCLUDEPATHDEFINES=1
@@ -65,12 +65,24 @@ server: .virtual
cd $(DEVELOPER_ROOT)\src\server
$(MAKE) $(TARGET)
-kmlmc: .virtual
- cd $(DEVELOPER_ROOT)\src\kmlmc
+kmc: kmc-keyboard kmc-model kmc-model-info kmc-package
+ cd $(DEVELOPER_ROOT)\src\kmc
$(MAKE) $(TARGET)
-kmc: .virtual
- cd $(DEVELOPER_ROOT)\src\kmc
+kmc-keyboard: .virtual
+ cd $(DEVELOPER_ROOT)\src\kmc-keyboard
+ $(MAKE) $(TARGET)
+
+kmc-model: .virtual
+ cd $(DEVELOPER_ROOT)\src\kmc-model
+ $(MAKE) $(TARGET)
+
+kmc-model-info: .virtual
+ cd $(DEVELOPER_ROOT)\src\kmc-model-info
+ $(MAKE) $(TARGET)
+
+kmc-package: .virtual
+ cd $(DEVELOPER_ROOT)\src\kmc-package
$(MAKE) $(TARGET)
# ----------------------------------------------------------------------
diff --git a/developer/src/README.md b/developer/src/README.md
index 6054cd5a61..e4de6c1328 100644
--- a/developer/src/README.md
+++ b/developer/src/README.md
@@ -27,10 +27,10 @@ Building and signing of the installation archive keymandeveloper.msi.
### src/inst/node
-Contains a minimal distribution of node.js intended just for compiling lexical
-models. If more dependencies are required, then the developer will be expected
-to install node.js themselves; this gets users going without requiring a large
-installer or a full node.js install.
+Contains a minimal distribution of node.js intended just for running kmc. If
+more dependencies are required, then the developer will be expected to install
+node.js themselves; this gets users going without requiring a large installer or
+a full node.js install.
## src/kmanalyze - kmanalyze.exe
@@ -66,27 +66,33 @@ Unsupported utility decompiles a Keyman .kmx keyboard. It will produce a .kmn
source file and optionally a .ico or .bmp image. see kmdecomp/kmdecomp.md for
details.
-## src/kmlmc
+## src/kmc
-node-based compilers for lexical models
+node-based next generation compiler, hosts kmc, kmlmi, kmlmc, kmlmp
-### src/kmlmc/kmlmc - Lexical Model Compiler
+### src/kmc-keyboard - LDML Keyboard Compiler
+
+Next Generation keyboard compiler package - LDML keyboards only at present.
+Command line access through kmc.
+
+### src/kmc-model - Lexical Model Compiler
The Lexical Model Compiler, kmlmc, runs on nodeJS on all supported desktop
-platforms.
+platforms. Command line access through kmc/kmlmc.
-### src/kmlmc/kmlmp - Package Compiler
+### src/kmc-package - Package Compiler
The package compiler is broadly compatible with the kmcomp .kps package
compiler. However at this stage it is only tested with lexical models, and use
with keyboards (either .js or .kmx) is not tested or supported. It is likely in
the future that the kmcomp .kps compiler will be deprecated in favour of this
-one.
+one. Command line access through kmc/kmlmp.
-### src/kmlmc/kmlmi - Model Info Compiler
+### src/kmc-model-info - Model Info Compiler
-Merges .model_info files for use on the Keyman Cloud lexical model repository
-at https://github.com/keymanapp/lexical-models.
+Merges .model_info files for use on the Keyman Cloud lexical model repository at
+https://github.com/keymanapp/lexical-models. Command line access through
+kmc/kmlmi.
## src/samples
diff --git a/developer/src/inst/Makefile b/developer/src/inst/Makefile
index 4d12470399..ae2e328c82 100644
--- a/developer/src/inst/Makefile
+++ b/developer/src/inst/Makefile
@@ -6,7 +6,7 @@
# ----------------------------------------------------------------------
-DEVELOPER_FILES=kmdev.wixobj xml.wixobj cef.wixobj templates.wixobj kmlmc.wixobj server.wixobj kmc.wixobj
+DEVELOPER_FILES=kmdev.wixobj xml.wixobj cef.wixobj templates.wixobj server.wixobj kmc.wixobj
setup:
#
@@ -60,7 +60,7 @@ clean:
-del /Q xml.wxs
-del /Q cef.wxs
-del /Q templates.wxs
- -del /Q kmlmc.wxs
+ -del /Q kmc.wxs
test-releaseexists:
cd $(DEVELOPER_ROOT)\src\inst
diff --git a/developer/src/inst/download.in.mak b/developer/src/inst/download.in.mak
index 7e6625970b..6687086098 100644
--- a/developer/src/inst/download.in.mak
+++ b/developer/src/inst/download.in.mak
@@ -16,8 +16,7 @@ KEYMAN_WIX_TEMP_BASE=$(TEMP)\keyman_wix_build
KEYMAN_WIX_TEMP_XML=$(TEMP)\keyman_wix_build\xml
KEYMAN_WIX_TEMP_CEF=$(TEMP)\keyman_wix_build\cef
KEYMAN_WIX_TEMP_TEMPLATES=$(TEMP)\keyman_wix_build\templates
-KEYMAN_WIX_TEMP_MODELCOMPILER=$(TEMP)\keyman_wix_build\ModelCompiler
-KEYMAN_WIX_TEMP_LDMLKEYBOARDCOMPILER=$(TEMP)\keyman_wix_build\LDMLKeyboardCompiler
+KEYMAN_WIX_TEMP_KMC=$(TEMP)\keyman_wix_build\kmc
KEYMAN_WIX_TEMP_SERVER=$(TEMP)\keyman_wix_build\Server
KEYMAN_WIX_KMDEV_SERVER=$(DEVELOPER_ROOT)\bin\server
@@ -31,16 +30,15 @@ copykmdev: makeinstaller make-kmcomp-install-zip
test-releaseexists:
if exist $(DEVELOPER_ROOT)\release\$Version\keymandeveloper*.msi echo. & echo Release $Version already exists. Delete it or update VERSION.md and try again & exit 1
-candle: heat-cef heat-xml heat-templates heat-model-compiler heat-server heat-ldml-keyboard-compiler
+candle: heat-cef heat-xml heat-templates heat-server heat-kmc
$(WIXCANDLE) -dVERSION=$VersionWin -dRELEASE=$VersionRelease kmdev.wxs
$(WIXCANDLE) -dVERSION=$VersionWin -dRELEASE=$VersionRelease -dXmlSourceDir=$(DEVELOPER_ROOT)\src\tike\xml xml.wxs
$(WIXCANDLE) -dVERSION=$VersionWin -dRELEASE=$VersionRelease -dCefSourceDir=$(KEYMAN_CEF4DELPHI_ROOT) cef.wxs
$(WIXCANDLE) -dVERSION=$VersionWin -dRELEASE=$VersionRelease -dTemplatesSourceDir=$(KEYMAN_DEVELOPER_TEMPLATES_ROOT) templates.wxs
- $(WIXCANDLE) -dVERSION=$VersionWin -dRELEASE=$VersionRelease -dModelCompilerSourceDir=$(KEYMAN_WIX_TEMP_MODELCOMPILER) kmlmc.wxs
- $(WIXCANDLE) -dVERSION=$VersionWin -dRELEASE=$VersionRelease -dLDMLKeyboardCompilerSourceDir=$(KEYMAN_WIX_TEMP_LDMLKEYBOARDCOMPILER) kmc.wxs
+ $(WIXCANDLE) -dVERSION=$VersionWin -dRELEASE=$VersionRelease -dkmcSourceDir=$(KEYMAN_WIX_TEMP_KMC) kmc.wxs
$(WIXCANDLE) -dVERSION=$VersionWin -dRELEASE=$VersionRelease -dServerSourceDir=$(KEYMAN_WIX_KMDEV_SERVER) server.wxs
-clean-heat: clean-heat-model-compiler clean-heat-ldml-keyboard-compiler
+clean-heat: clean-heat-kmc
heat-xml:
# We copy the files to a temp folder in order to exclude thumbs.db, .vs, etc from harvesting
@@ -81,33 +79,19 @@ heat-server:
# When we candle/light build, we can grab the source files from the proper root so go ahead and delete the temp folder again
-rmdir /s/q $(KEYMAN_WIX_TEMP_SERVER)
-heat-ldml-keyboard-compiler:
- cd $(KEYMAN_LDMLKEYBOARDCOMPILER_ROOT)
+heat-kmc:
+ cd $(DEVELOPER_ROOT)\src\kmc
# Build the distributable package
$(GIT_BASH_FOR_KEYMAN) build.sh bundle --build-path "$(KEYMAN_WIX_TEMP_BASE)"
# Build the .wxs file
cd $(DEVELOPER_ROOT)\src\inst
- $(WIXHEAT) dir $(KEYMAN_WIX_TEMP_LDMLKEYBOARDCOMPILER) -o kmc.wxs -ag -cg LDMLKeyboardCompiler -dr INSTALLDIR -var var.LDMLKeyboardCompilerSourceDir -wx -nologo
+ $(WIXHEAT) dir $(KEYMAN_WIX_TEMP_KMC) -o kmc.wxs -ag -cg kmc -dr INSTALLDIR -var var.kmcSourceDir -wx -nologo
-clean-heat-ldml-keyboard-compiler:
+clean-heat-kmc:
# the production build generates files that are not in source, e.g. .ps1 scripts
# When we candle/light build, we can grab the source files from the proper root so go ahead and delete the temp folder again
- -rmdir /s/q $(KEYMAN_WIX_TEMP_LDMLKEYBOARDCOMPILER)
-
-heat-model-compiler:
- cd $(KEYMAN_MODELCOMPILER_ROOT)
-# Build the distributable package
- $(GIT_BASH_FOR_KEYMAN) bundle.sh --build-path "$(KEYMAN_WIX_TEMP_BASE)"
-
-# Build the .wxs file
- cd $(DEVELOPER_ROOT)\src\inst
- $(WIXHEAT) dir $(KEYMAN_WIX_TEMP_MODELCOMPILER) -o kmlmc.wxs -ag -cg ModelCompiler -dr INSTALLDIR -var var.ModelCompilerSourceDir -wx -nologo
-
-clean-heat-model-compiler:
-# the production build generates files that are not in source, e.g. .ps1 scripts
-# When we candle/light build, we can grab the source files from the proper root so go ahead and delete the temp folder again
- -rmdir /s/q $(KEYMAN_WIX_TEMP_MODELCOMPILER)
+ -rmdir /s/q $(KEYMAN_WIX_TEMP_KMC)
makeinstaller:
cd $(DEVELOPER_ROOT)\src\inst
diff --git a/developer/src/inst/kmdev.wxs b/developer/src/inst/kmdev.wxs
index 7c57f013db..c7c26104e5 100644
--- a/developer/src/inst/kmdev.wxs
+++ b/developer/src/inst/kmdev.wxs
@@ -363,8 +363,7 @@
-
-
+
diff --git a/developer/src/kmc-keyboard/Makefile b/developer/src/kmc-keyboard/Makefile
new file mode 100644
index 0000000000..3cf3ac055a
--- /dev/null
+++ b/developer/src/kmc-keyboard/Makefile
@@ -0,0 +1,39 @@
+#
+# Keyman Developer - kmc Keyboard Compiler Makefile
+#
+
+!include ..\Defines.mak
+
+# We do configure here because parent Makefile calls this first; other
+# kmc and kmc-* makefiles don't do it
+build: configure .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh build
+
+configure: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh configure
+
+clean: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh clean
+
+test: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh test
+
+# build.sh bundle must be run from shell as it requires a temp folder to be
+# passed in. See inst/download.in.mak for instantiation.
+
+publish: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh publish
+
+signcode:
+ @rem nothing to do
+
+wrap-symbols:
+ @rem nothing to do
+
+test-manifest:
+ @rem nothing to do
+
+install:
+ @rem nothing to do
+
+!include ..\Target.mak
diff --git a/developer/src/kmc-keyboard/build.sh b/developer/src/kmc-keyboard/build.sh
new file mode 100644
index 0000000000..9fef8f8b68
--- /dev/null
+++ b/developer/src/kmc-keyboard/build.sh
@@ -0,0 +1,83 @@
+#!/usr/bin/env bash
+#
+# Compiles the kmc keyboard compiler.
+#
+
+# Exit on command failure and when using unset variables:
+set -eu
+
+## START STANDARD BUILD SCRIPT INCLUDE
+# adjust relative paths as necessary
+THIS_SCRIPT="$(greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null || readlink -f "${BASH_SOURCE[0]}")"
+. "$(dirname "$THIS_SCRIPT")/../../../resources/build/build-utils.sh"
+## END STANDARD BUILD SCRIPT INCLUDE
+
+cd "$THIS_SCRIPT_PATH"
+
+. "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
+
+builder_describe "Build Keyman kmc Keyboard Compiler module" \
+ "configure" \
+ "build" \
+ "clean" \
+ "test" \
+ "build-fixtures builds test fixtures for manual examination" \
+ "publish publish to npm" \
+ "--dry-run,-n don't actually publish, just dry run"
+
+builder_parse "$@"
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action clean; then
+ rm -rf ./build/ ./tsconfig.tsbuildinfo
+ builder_report success clean
+else
+ # We need the schema file at runtime and bundled, so always copy it for all actions except `clean`
+ mkdir -p "$THIS_SCRIPT_PATH/build/src/"
+ cp "$KEYMAN_ROOT/resources/standards-data/ldml-keyboards/techpreview/ldml-keyboard.schema.json" "$THIS_SCRIPT_PATH/build/src/"
+fi
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action configure; then
+ verify_npm_setup
+ builder_report success configure
+fi
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action build; then
+ npm run build
+ builder_report success build
+fi
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action build-fixtures; then
+ # Build basic.kmx and emit its checksum
+ mkdir -p ./build/test/fixtures
+ node . ./test/fixtures/basic.xml --no-compiler-version --debug --out-file ./build/test/fixtures/basic-xml.kmx
+ printf "${COLOR_GREY}Checksum for basic-xml.kmx: ${COLOR_PURPLE}%s${COLOR_RESET}\n" \
+ "$(xxd -g 1 -l 12 ./build/test/fixtures/basic-xml.kmx | cut -d' ' -f 10-13)"
+
+ # Generate a binary file from basic.txt for comparison purposes
+ node ../../../common/tools/hextobin/build/hextobin.js ./test/fixtures/basic.txt ./build/test/fixtures/basic-txt.kmx
+
+ builder_report success build-fixtures
+fi
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action test; then
+ npm test
+ builder_report success test
+fi
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action publish; then
+ . "$KEYMAN_ROOT/resources/build/npm-publish.inc.sh"
+ npm_publish
+ builder_report success publish
+fi
diff --git a/developer/src/kmc-keyboard/package.json b/developer/src/kmc-keyboard/package.json
new file mode 100644
index 0000000000..5f60402f3d
--- /dev/null
+++ b/developer/src/kmc-keyboard/package.json
@@ -0,0 +1,54 @@
+{
+ "name": "@keymanapp/kmc-keyboard",
+ "description": "Keyman Developer keyboard compiler",
+ "keywords": [
+ "keyboard",
+ "keyman",
+ "ldml",
+ "unicode"
+ ],
+ "type": "module",
+ "exports": {
+ ".": "./build/src/main.js"
+ },
+ "scripts": {
+ "build": "tsc -b",
+ "test": "cd test && tsc -b && cd .. && c8 mocha",
+ "prepublishOnly": "npm run build"
+ },
+ "author": "Marc Durdin (https://github.com/mcdurdin)",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/keymanapp/keyman/issues"
+ },
+ "dependencies": {
+ "@keymanapp/keyman-version": "*",
+ "ajv": "^8.11.0",
+ "crc-32": "^1.2.2",
+ "restructure": "^3.0.0",
+ "semver": "^7.3.7",
+ "xml2js": "^0.4.19"
+ },
+ "devDependencies": {
+ "@types/chai": "^4.1.7",
+ "@types/mocha": "^5.2.7",
+ "@types/node": "^10.14.6",
+ "@types/xml2js": "^0.4.5",
+ "c8": "^7.12.0",
+ "chai": "^4.3.4",
+ "chalk": "^2.4.2",
+ "mocha": "^8.4.0",
+ "ts-node": "^9.1.1",
+ "typescript": "^4.5.4"
+ },
+ "mocha": {
+ "spec": "build/test/**/test-*.js",
+ "require": [
+ "source-map-support/register"
+ ]
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/keymanapp/keyman.git"
+ }
+}
diff --git a/developer/src/kmc-keyboard/test/tsconfig.json b/developer/src/kmc-keyboard/test/tsconfig.json
new file mode 100644
index 0000000000..1576a71da8
--- /dev/null
+++ b/developer/src/kmc-keyboard/test/tsconfig.json
@@ -0,0 +1,19 @@
+{
+ "extends": "../../kmc/tsconfig.kmc-base.json",
+
+ "compilerOptions": {
+ "rootDir": ".",
+ "rootDirs": ["./", "../src/"],
+ "outDir": "../build/test",
+ "baseUrl": ".",
+ "strictNullChecks": false, // TODO: get rid of this as some point
+ },
+ "include": [
+ "**/test-*.ts",
+ "./helpers/index.ts"
+ ],
+ "references": [
+ { "path": "../../../../common/web/keyman-version/tsconfig.esm.json" },
+ { "path": "../" }
+ ]
+}
\ No newline at end of file
diff --git a/developer/src/kmc-keyboard/tsconfig.json b/developer/src/kmc-keyboard/tsconfig.json
new file mode 100644
index 0000000000..46df6cf5c7
--- /dev/null
+++ b/developer/src/kmc-keyboard/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "extends": "../kmc/tsconfig.kmc-base.json",
+
+ "compilerOptions": {
+ "outDir": "build/src/",
+ "rootDir": "src/",
+ "baseUrl": ".",
+ "allowSyntheticDefaultImports": true // for ajv
+ },
+ "include": [
+ "src/**/*.ts"
+ ],
+ "references": [
+ { "path": "../../../common/web/keyman-version/tsconfig.esm.json" },
+ { "path": "../../../core/include/ldml/"}
+ ]
+}
diff --git a/developer/src/kmc-model-info/Makefile b/developer/src/kmc-model-info/Makefile
new file mode 100644
index 0000000000..f3e73efd12
--- /dev/null
+++ b/developer/src/kmc-model-info/Makefile
@@ -0,0 +1,38 @@
+#
+# Keyman Developer - kmc Model-Info Compiler Makefile
+#
+
+!include ..\Defines.mak
+
+# We don't depend on configure here because kmc-keyboard does that already
+build: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh build
+
+configure: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh configure
+
+clean: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh clean
+
+test: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh test
+
+# build.sh bundle must be run from shell as it requires a temp folder to be
+# passed in. See inst/download.in.mak for instantiation.
+
+publish: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh publish
+
+signcode:
+ @rem nothing to do
+
+wrap-symbols:
+ @rem nothing to do
+
+test-manifest:
+ @rem nothing to do
+
+install:
+ @rem nothing to do
+
+!include ..\Target.mak
diff --git a/developer/src/kmc-model-info/build.sh b/developer/src/kmc-model-info/build.sh
new file mode 100644
index 0000000000..b7f1b6c3b2
--- /dev/null
+++ b/developer/src/kmc-model-info/build.sh
@@ -0,0 +1,63 @@
+#!/usr/bin/env bash
+#
+# Compiles the kmc lexical model model-info compiler.
+#
+
+# Exit on command failure and when using unset variables:
+set -eu
+
+## START STANDARD BUILD SCRIPT INCLUDE
+# adjust relative paths as necessary
+THIS_SCRIPT="$(greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null || readlink -f "${BASH_SOURCE[0]}")"
+. "$(dirname "$THIS_SCRIPT")/../../../resources/build/build-utils.sh"
+## END STANDARD BUILD SCRIPT INCLUDE
+
+cd "$THIS_SCRIPT_PATH"
+
+. "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
+
+builder_describe "Build Keyman kmc Lexical Model model-info Compiler module" \
+ "configure" \
+ "build" \
+ "clean" \
+ "test" \
+ "publish publish to npm" \
+ "--dry-run,-n don't actually publish, just dry run"
+
+builder_parse "$@"
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action clean; then
+ rm -rf ./build/ ./tsconfig.tsbuildinfo
+ builder_report success clean
+fi
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action configure; then
+ verify_npm_setup
+ builder_report success configure
+fi
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action build; then
+ npm run build
+ builder_report success build
+fi
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action test; then
+ #npm test - no tests as yet
+ builder_report success test
+fi
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action publish; then
+ . "$KEYMAN_ROOT/resources/build/npm-publish.inc.sh"
+ npm_publish
+ builder_report success publish
+fi
diff --git a/developer/src/kmc-model-info/tsconfig.json b/developer/src/kmc-model-info/tsconfig.json
new file mode 100644
index 0000000000..1609623edf
--- /dev/null
+++ b/developer/src/kmc-model-info/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "extends": "../kmc/tsconfig.kmc-base.json",
+
+ "compilerOptions": {
+ "outDir": "build/src/",
+ "rootDir": "src/",
+ "baseUrl": ".",
+ "paths": {
+ }
+ },
+ "include": [
+ "src/**/*.ts"
+ ],
+ "references": [
+ { "path": "../kmc-package" } // can we eliminate this in future?
+ ]
+}
diff --git a/developer/src/kmc-model/Makefile b/developer/src/kmc-model/Makefile
new file mode 100644
index 0000000000..353d923bd4
--- /dev/null
+++ b/developer/src/kmc-model/Makefile
@@ -0,0 +1,38 @@
+#
+# Keyman Developer - kmc Model Compiler Makefile
+#
+
+!include ..\Defines.mak
+
+# We don't depend on configure here because kmc-keyboard does that already
+build: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh build
+
+configure: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh configure
+
+clean: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh clean
+
+test: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh test
+
+# build.sh bundle must be run from shell as it requires a temp folder to be
+# passed in. See inst/download.in.mak for instantiation.
+
+publish: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh publish
+
+signcode:
+ @rem nothing to do
+
+wrap-symbols:
+ @rem nothing to do
+
+test-manifest:
+ @rem nothing to do
+
+install:
+ @rem nothing to do
+
+!include ..\Target.mak
diff --git a/developer/src/kmc-model/build.sh b/developer/src/kmc-model/build.sh
new file mode 100644
index 0000000000..5833db2c37
--- /dev/null
+++ b/developer/src/kmc-model/build.sh
@@ -0,0 +1,67 @@
+#!/usr/bin/env bash
+#
+# Compiles the kmc lexical model compiler.
+#
+
+# Exit on command failure and when using unset variables:
+set -eu
+
+## START STANDARD BUILD SCRIPT INCLUDE
+# adjust relative paths as necessary
+THIS_SCRIPT="$(greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null || readlink -f "${BASH_SOURCE[0]}")"
+. "$(dirname "$THIS_SCRIPT")/../../../resources/build/build-utils.sh"
+## END STANDARD BUILD SCRIPT INCLUDE
+
+cd "$THIS_SCRIPT_PATH"
+
+. "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
+
+builder_describe "Build Keyman kmc Lexical Model Compiler module" \
+ "configure" \
+ "build" \
+ "clean" \
+ "test" \
+ "publish publish to npm" \
+ "--dry-run,-n don't actually publish, just dry run"
+
+builder_parse "$@"
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action clean; then
+ rm -rf ./build/ ./tsconfig.tsbuildinfo
+ builder_report success clean
+fi
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action configure; then
+ verify_npm_setup
+ builder_report success configure
+fi
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action build; then
+ # Note: build-cjs only emits lexical-model-compiler.cjs at this time, as that
+ # is the only file required by other non-ES modules
+ # (common/web/input-processor tests)
+ mkdir -p build/cjs-src
+ npm run build
+ builder_report success build
+fi
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action test; then
+ npm test
+ builder_report success test
+fi
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action publish; then
+ . "$KEYMAN_ROOT/resources/build/npm-publish.inc.sh"
+ npm_publish
+ builder_report success publish
+fi
diff --git a/developer/src/kmc-model/package.json b/developer/src/kmc-model/package.json
new file mode 100644
index 0000000000..54d6ce78fd
--- /dev/null
+++ b/developer/src/kmc-model/package.json
@@ -0,0 +1,57 @@
+{
+ "name": "@keymanapp/kmc-model",
+ "description": "Keyman Developer lexical model compiler",
+ "keywords": [
+ "keyboard",
+ "keyman",
+ "unicode",
+ "lexical-model",
+ "predictive-text"
+ ],
+ "type": "module",
+ "exports": {
+ ".": "./build/src/main.js"
+ },
+ "scripts": {
+ "build": "tsc -b && npm run build-cjs",
+ "build-cjs": "esbuild build/src/lexical-model-compiler.js --bundle --platform=node --external:./node_modules/* > build/cjs-src/lexical-model-compiler.cjs",
+ "test": "cd test && tsc -b && cd .. && c8 mocha",
+ "prepublishOnly": "npm run build"
+ },
+ "author": "Marc Durdin (https://github.com/mcdurdin)",
+ "contributors": [
+ "Eddie Antonio Santos ",
+ "Joshua Horton"
+ ],
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/keymanapp/keyman/issues"
+ },
+ "dependencies": {
+ "@keymanapp/keyman-version": "*",
+ "@keymanapp/models-types": "*",
+ "typescript": "^4.8.3"
+ },
+ "devDependencies": {
+ "@types/chai": "^4.1.7",
+ "@types/mocha": "^5.2.7",
+ "@types/node": "^10.14.6",
+ "@types/xml2js": "^0.4.5",
+ "c8": "^7.12.0",
+ "chai": "^4.3.4",
+ "chalk": "^2.4.2",
+ "esbuild": "^0.15.7",
+ "mocha": "^10.0.0",
+ "ts-node": "^9.1.1"
+ },
+ "mocha": {
+ "spec": "build/test/**/test-*.js",
+ "require": [
+ "source-map-support/register"
+ ]
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/keymanapp/keyman.git"
+ }
+}
diff --git a/developer/src/kmc-model/test/tsconfig.json b/developer/src/kmc-model/test/tsconfig.json
new file mode 100644
index 0000000000..fd7f672037
--- /dev/null
+++ b/developer/src/kmc-model/test/tsconfig.json
@@ -0,0 +1,22 @@
+{
+ "extends": "../../kmc/tsconfig.kmc-base.json",
+
+ "compilerOptions": {
+ "rootDir": ".",
+ "rootDirs": ["./", "../src/"],
+ "outDir": "../build/test",
+ "esModuleInterop": true,
+ "moduleResolution": "node16",
+ "allowSyntheticDefaultImports": true,
+ "baseUrl": ".",
+ },
+ "include": [
+ "**/test-*.ts",
+ "*.ts",
+ "helpers/*.ts",
+ "wordbreakers/*.ts"
+ ],
+ "references": [
+ { "path": "../" },
+ ]
+}
\ No newline at end of file
diff --git a/developer/src/kmc-model/tsconfig.json b/developer/src/kmc-model/tsconfig.json
new file mode 100644
index 0000000000..e48ec745f9
--- /dev/null
+++ b/developer/src/kmc-model/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "extends": "../kmc/tsconfig.kmc-base.json",
+
+ "compilerOptions": {
+ "outDir": "build/src/",
+ "rootDir": "src/",
+ "baseUrl": ".",
+ "allowSyntheticDefaultImports": true,
+ },
+ "include": [
+ "src/**/*.ts"
+ ],
+ "references": [
+ { "path": "../../../common/web/keyman-version/tsconfig.esm.json" },
+ { "path": "../../../common/models/types" },
+ ]
+}
diff --git a/developer/src/kmc-package/Makefile b/developer/src/kmc-package/Makefile
new file mode 100644
index 0000000000..02bf07dc02
--- /dev/null
+++ b/developer/src/kmc-package/Makefile
@@ -0,0 +1,38 @@
+#
+# Keyman Developer - kmc Package Compiler Makefile
+#
+
+!include ..\Defines.mak
+
+# We don't depend on configure here because kmc-keyboard does that already
+build: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh build
+
+configure: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh configure
+
+clean: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh clean
+
+test: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh test
+
+# build.sh bundle must be run from shell as it requires a temp folder to be
+# passed in. See inst/download.in.mak for instantiation.
+
+publish: .virtual
+ $(GIT_BASH_FOR_KEYMAN) build.sh publish
+
+signcode:
+ @rem nothing to do
+
+wrap-symbols:
+ @rem nothing to do
+
+test-manifest:
+ @rem nothing to do
+
+install:
+ @rem nothing to do
+
+!include ..\Target.mak
diff --git a/developer/src/kmc-package/build.sh b/developer/src/kmc-package/build.sh
new file mode 100644
index 0000000000..f89023ccff
--- /dev/null
+++ b/developer/src/kmc-package/build.sh
@@ -0,0 +1,63 @@
+#!/usr/bin/env bash
+#
+# Compiles the kmc lexical model package compiler.
+#
+
+# Exit on command failure and when using unset variables:
+set -eu
+
+## START STANDARD BUILD SCRIPT INCLUDE
+# adjust relative paths as necessary
+THIS_SCRIPT="$(greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null || readlink -f "${BASH_SOURCE[0]}")"
+. "$(dirname "$THIS_SCRIPT")/../../../resources/build/build-utils.sh"
+## END STANDARD BUILD SCRIPT INCLUDE
+
+cd "$THIS_SCRIPT_PATH"
+
+. "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
+
+builder_describe "Build Keyman kmc Package Compiler module" \
+ "configure" \
+ "build" \
+ "clean" \
+ "test" \
+ "publish publish to npm" \
+ "--dry-run,-n don't actually publish, just dry run"
+
+builder_parse "$@"
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action clean; then
+ rm -rf ./build/ ./tsconfig.tsbuildinfo
+ builder_report success clean
+fi
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action configure; then
+ verify_npm_setup
+ builder_report success configure
+fi
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action build; then
+ npm run build
+ builder_report success build
+fi
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action test; then
+ npm test
+ builder_report success test
+fi
+
+#-------------------------------------------------------------------------------------------------------------------
+
+if builder_has_action publish; then
+ . "$KEYMAN_ROOT/resources/build/npm-publish.inc.sh"
+ npm_publish
+ builder_report success publish
+fi
diff --git a/developer/src/kmc-package/package.json b/developer/src/kmc-package/package.json
new file mode 100644
index 0000000000..74e77820cc
--- /dev/null
+++ b/developer/src/kmc-package/package.json
@@ -0,0 +1,53 @@
+{
+ "name": "@keymanapp/kmc-package",
+ "description": "Keyman Developer package compiler",
+ "keywords": [
+ "keyboard",
+ "keyman",
+ "unicode"
+ ],
+ "type": "module",
+ "exports": {
+ ".": "./build/src/kmp-compiler.js",
+ "./kmp-json-file": "./build/src/kmp-json-file.js"
+ },
+ "scripts": {
+ "build": "tsc -b",
+ "test": "cd test && tsc -b && cd .. && mocha",
+ "coverage": "cd test && tsc -b && cd .. && c8 mocha",
+ "prepublishOnly": "npm run build"
+ },
+ "author": "Marc Durdin (https://github.com/mcdurdin)",
+ "contributors": [
+ "Eddie Antonio Santos ",
+ "Joshua Horton"
+ ],
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/keymanapp/keyman/issues"
+ },
+ "dependencies": {
+ "jszip": "^3.7.0"
+ },
+ "devDependencies": {
+ "@types/chai": "^4.1.7",
+ "@types/mocha": "^5.2.7",
+ "@types/node": "^10.14.6",
+ "c8": "^7.12.0",
+ "chai": "^4.3.4",
+ "chalk": "^2.4.2",
+ "mocha": "^8.4.0",
+ "ts-node": "^9.1.1",
+ "typescript": "^4.5.4"
+ },
+ "mocha": {
+ "spec": "build/test/**/test-*.js",
+ "require": [
+ "source-map-support/register"
+ ]
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/keymanapp/keyman.git"
+ }
+}
diff --git a/developer/src/kmc-package/test/tsconfig.json b/developer/src/kmc-package/test/tsconfig.json
new file mode 100644
index 0000000000..672bdc861b
--- /dev/null
+++ b/developer/src/kmc-package/test/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "extends": "../../kmc/tsconfig.kmc-base.json",
+
+ "compilerOptions": {
+ "rootDir": ".",
+ "rootDirs": ["./", "../src/"],
+ "outDir": "../build/test",
+ "baseUrl": ".",
+ },
+ "include": [
+ "**/test-*.ts",
+ "helpers/*.ts"
+ ],
+ "references": [
+ { "path": "../" }
+ ]
+}
\ No newline at end of file
diff --git a/developer/src/kmc-package/tsconfig.json b/developer/src/kmc-package/tsconfig.json
new file mode 100644
index 0000000000..a0311dd53c
--- /dev/null
+++ b/developer/src/kmc-package/tsconfig.json
@@ -0,0 +1,14 @@
+{
+ "extends": "../kmc/tsconfig.kmc-base.json",
+
+ "compilerOptions": {
+ "outDir": "build/src/",
+ "rootDir": "src/",
+ "allowSyntheticDefaultImports": true, // for jszip
+ },
+ "include": [
+ "src/**/*.ts"
+ ],
+ "references": [
+ ]
+}
diff --git a/developer/src/kmc/.gitignore b/developer/src/kmc/.gitignore
deleted file mode 100644
index a7c831389d..0000000000
--- a/developer/src/kmc/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-tsconfig.tsbuildinfo
-build/
-.nyc_output/
\ No newline at end of file
diff --git a/developer/src/kmc/.npmignore b/developer/src/kmc/.npmignore
new file mode 100644
index 0000000000..7812fdab12
--- /dev/null
+++ b/developer/src/kmc/.npmignore
@@ -0,0 +1,12 @@
+# Ignore files required only in development.
+build.sh
+bundle.inc.sh
+Makefile
+src/*
+test/*
+tools/*
+tsconfig.json
+tsconfig.kmc-base.json
+
+# Ignore other unneeded build artifacts
+.nyc_output/
diff --git a/developer/src/kmc/Makefile b/developer/src/kmc/Makefile
index 7cc65eb38b..8e8dc7d5f3 100644
--- a/developer/src/kmc/Makefile
+++ b/developer/src/kmc/Makefile
@@ -1,10 +1,12 @@
#
-# Keyman Developer - LDML Keyboard Compiler Makefile
+# Keyman Developer - next generation compiler Makefile
#
!include ..\Defines.mak
-build: configure .virtual
+# We don't depend on configure here because kmc-keyboard does that already,
+# called from parent folder Makefile
+build: .virtual
$(GIT_BASH_FOR_KEYMAN) build.sh build
configure: .virtual
diff --git a/developer/src/kmc/README.md b/developer/src/kmc/README.md
index 5459ecf816..585eed7d56 100644
--- a/developer/src/kmc/README.md
+++ b/developer/src/kmc/README.md
@@ -1,20 +1,36 @@
-Keyman Developer - LDML Keyboard Compiler
+Keyman Developer - Next Generation Compiler
================
-This package provides the following Keyman **command line tool**:
+This package provides the following Keyman **command line tools**:
- `kmc` — takes **LDML Keyboard .xml sources** and compiles them in to a
KMXPlus **.kmx** file.
+ - `kmlmc` — takes **lexical model sources** and compiles them in to a **.js**
+ file.
+ - `kmlmp` — uses a `.model.kmp` file to generate a redistributable **lexical
+ model package**.
+ - `kmlmi` — merges Keyman lexical model `.model_info` files.
+
+`kmlmc` is intended to be used standalone, or as part of a build system. `kmlmp`
+is used only by command line tools. `kmlmi` is used exclusively in the
+[lexical-models repository][lexical models].
+
+Note: `kmc` will in the future replace `kmlmc`, `kmlmp`, and `kmlmi`.
+
+In order to build [lexical models][], these tools must be built and compiled.
+
+[lexical models]: https://github.com/keymanapp/lexical-models
+
Install
-------
-Install `kmlmdlc` globally:
+Install `kmc` globally:
- npm install -g @keymanapp/ldml-keyboard-compiler
+ npm install -g @keymanapp/kmc
-Usage
------
+kmc Usage
+---------
To compile an LDML keyboard from its `.xml` source, use `kmc`:
@@ -24,6 +40,19 @@ To see more command line options by using the `--help` option:
kmc --help
+kmlmc Usage
+-----------
+
+To compile a lexical model from its `.model.ts` source, use `kmlmc`:
+
+ kmlmc my-lexical-model.model.ts --outFile my-lexical-model.js
+
+To see more command line options by using the `--help` option:
+
+ kmlmc --help
+ kmlmp --help
+ kmlmi --help
+
How to build from source
------------------------
@@ -31,13 +60,18 @@ Run `build.sh`:
./build.sh configure build
-or
+or (less preferably -- build.sh is more efficient):
nmake configure build
-Once you have `configure`d once, you should not normally need to do it
-again unless dependencies change. `./build.sh` without parameters will
-do the default action, which is `build`.
+Once you have `configure`d once, you should not normally need to do it again
+unless dependencies change or you clean the build folder. `./build.sh` without
+parameters will do the default action, which is `build`.
+
+TODO: Note that kmc currently depends on kmc-* to have been configured; while
+the build of kmc will do the typescript component of the build, it will not be
+able to do any other build steps, so you may wish to build each of the
+components separately, one time.
How to run the tests
--------------------
diff --git a/developer/src/kmc/build.sh b/developer/src/kmc/build.sh
index 7cfcfce705..6c6d53ff2e 100755
--- a/developer/src/kmc/build.sh
+++ b/developer/src/kmc/build.sh
@@ -16,13 +16,12 @@ cd "$THIS_SCRIPT_PATH"
. "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
-builder_describe "Build Keyman LDML Keyboard Compiler kmc" \
+builder_describe "Build Keyman Keyboard Compiler kmc" \
"configure runs 'npm ci' on root folder" \
"build (default) builds kmc to build/" \
"clean cleans build/ folder" \
"bundle creates a bundled version of kmc" \
"test run automated tests for kmc" \
- "build-fixtures builds test fixtures for manual examination" \
"publish publish to npm" \
"--build-path=BUILD_PATH build directory for bundle" \
"--dry-run,-n don't actually publish, just dry run"
@@ -34,17 +33,17 @@ builder_parse "$@"
if builder_has_action clean; then
rm -rf ./build/ ./tsconfig.tsbuildinfo
builder_report success clean
+else
+ # We need the schema file at runtime and bundled, so always copy it for all actions except `clean`
+ mkdir -p "$THIS_SCRIPT_PATH/build/src/"
+ cp "$KEYMAN_ROOT/resources/standards-data/ldml-keyboards/techpreview/ldml-keyboard.schema.json" "$THIS_SCRIPT_PATH/build/src/"
fi
+
#-------------------------------------------------------------------------------------------------------------------
if builder_has_action configure; then
verify_npm_setup
-
- # We need the schema file at runtime and bundled
- mkdir -p "$THIS_SCRIPT_PATH/build/src/"
- cp "$KEYMAN_ROOT/resources/standards-data/ldml-keyboards/techpreview/ldml-keyboard.schema.json" "$THIS_SCRIPT_PATH/build/src/"
-
builder_report success configure
fi
@@ -57,60 +56,30 @@ fi
#-------------------------------------------------------------------------------------------------------------------
-if builder_has_action build-fixtures; then
- # Build basic.kmx and emit its checksum
- mkdir -p ./build/test/fixtures
- node . ./test/fixtures/basic.xml --no-compiler-version --debug --out-file ./build/test/fixtures/basic-xml.kmx
- printf "${COLOR_GREY}Checksum for basic-xml.kmx: ${COLOR_PURPLE}%s${COLOR_RESET}\n" \
- "$(xxd -g 1 -l 12 ./build/test/fixtures/basic-xml.kmx | cut -d' ' -f 10-13)"
-
- # Generate a binary file from basic.txt for comparison purposes
- node ../../../common/tools/hextobin/build/hextobin.js ./test/fixtures/basic.txt ./build/test/fixtures/basic-txt.kmx
-
- builder_report success build-fixtures
-fi
-
-#-------------------------------------------------------------------------------------------------------------------
-
if builder_has_action test; then
- npm test
+ # npm test -- no tests as yet
builder_report success test
fi
#-------------------------------------------------------------------------------------------------------------------
if builder_has_action bundle; then
- . ./bundle.inc.sh
- bundle "$BUILD_PATH"
+ if ! builder_has_option --build-path; then
+ builder_report "Parameter --build-path is required" bundle
+ exit 64
+ fi
+
+ mkdir -p build/cjs-src
+ npm run bundle
+ cp build/cjs-src/* "$BUILD_PATH"
+
builder_report success bundle
fi
#-------------------------------------------------------------------------------------------------------------------
if builder_has_action publish; then
- if [[ $TIER == stable ]]; then
- npm_dist_tag=latest
- else
- npm_dist_tag=$TIER
- fi
-
- set_npm_version
-
- if build_has_option --dry-run; then
- DRY_RUN=--dry-run
- else
- DRY_RUN=
- fi
-
- #TEMP: we don't want to publish at this point!
- DRY_RUN=--dry-run
-
- # Note: In either case, npm publish MUST be given --access public to publish
- # a package in the @keymanapp scope on the public npm package index.
- #
- # See `npm help publish` for more details.
- echo "Publishing $DRY_RUN npm package with tag $npm_dist_tag"
- npm publish $DRY_RUN --access public --tag $npm_dist_tag || fail "Could not publish $npm_dist_tag release."
-
+ . "$KEYMAN_ROOT/resources/build/npm-publish.inc.sh"
+ npm_publish
builder_report success publish
fi
diff --git a/developer/src/kmc/bundle.inc.sh b/developer/src/kmc/bundle.inc.sh
deleted file mode 100644
index b5d11a664f..0000000000
--- a/developer/src/kmc/bundle.inc.sh
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/usr/bin/env bash
-
-. "$KEYMAN_ROOT/resources/build/jq.inc.sh"
-
-bundle() {
- if [[ $# -eq 0 ]]; then
- echo "Parameter --build-path is required"
- exit 64
- fi
-
- local BUILD_PATH="$1"
-
- # Input may be from a Windows build script, so we'll use cygpath to translate
- case $(uname) in
- CYGWIN* )
- BUILD_PATH=$(cygpath -u "$BUILD_PATH")
- ;;
- MINGW* )
- BUILD_PATH=$(cygpath -u "$BUILD_PATH")
- ;;
- esac
-
- KEYMAN_WIX_TEMP_BASE="$BUILD_PATH"
- KEYMAN_WIX_TEMP_LDMLKEYBOARDCOMPILER="$BUILD_PATH/LDMLKeyboardCompiler"
- KEYMAN_LDMLKEYBOARDCOMPILER_TEMP=`mktemp -d`
-
- echo "Temporary build path is $KEYMAN_LDMLKEYBOARDCOMPILER_TEMP"
-
- mkdir -p "$KEYMAN_WIX_TEMP_LDMLKEYBOARDCOMPILER"
-
- # We copy the built compiler into a temporary folder in order to prepare
- # the node modules, as otherwise the workspace will interfere
-
- cp -R "$KEYMAN_ROOT/developer/src/kmc/"* "$KEYMAN_LDMLKEYBOARDCOMPILER_TEMP/"
-
- cd "$KEYMAN_LDMLKEYBOARDCOMPILER_TEMP"
-
- # We use `npm pack` to extract only the aspects of the compiler actually
- # needed for distribution. While we could use npm-bundle or similar, that adds
- # extra, unwanted cruft; our approach gives us more control of the set of
- # files distributed with the Keyman Developer installer.
- #
- # For users on other operating systems, node.js is a dependency and the
- # compiler can be installed with `npm install
- # @keymanapp/ldml-keyboard-compiler`.
-
- # We copy the files to a temp folder in order to exclude thumbs.db, .vs, etc
- # from harvesting
- rm -rf "$KEYMAN_WIX_TEMP_LDMLKEYBOARDCOMPILER"
-
- # Step 1 - npm-pack the compiler package, then unpack it in our bundling
- # directory. This automatically strips the package to its barebones.
- set_npm_version
- npm pack
- mv keymanapp-ldml-keyboard-compiler*.tgz kmc.tgz
- mv kmc.tgz "$KEYMAN_WIX_TEMP_BASE"
-
- # We extract the npm-packed version of the compiler in order to reproduce
- # our needed bundle.
- cd "$KEYMAN_WIX_TEMP_BASE"
- tar xvzf kmc.tgz
-
- # Creates the directory referenced by $(KEYMAN_WIX_TEMP_LDMLKEYBOARDCOMPILER).
- mv package LDMLKeyboardCompiler
-
- # Cleans up the npm pack artifacts, which are no longer needed.
- rm kmc.tgz
-
- # Step 2 - the compiler has one in-repo dependency that will also need to
- # be packed. Managing other in-repo dependencies will be simpler; they install
- # into LDMLKeyboardCompiler's extracted bundle.
-
- mkdir -p "$KEYMAN_LDMLKEYBOARDCOMPILER_TEMP/node_modules/@keymanapp/"
- cp -R "$KEYMAN_ROOT/node_modules/@keymanapp/keyman-version" "$KEYMAN_LDMLKEYBOARDCOMPILER_TEMP/node_modules/@keymanapp/"
-
- cd "$KEYMAN_LDMLKEYBOARDCOMPILER_TEMP/node_modules/@keymanapp/keyman-version"
- set_npm_version
- npm pack
- mv keymanapp-keyman-version*.tgz kmver.tgz
- mv kmver.tgz "$KEYMAN_WIX_TEMP_LDMLKEYBOARDCOMPILER"
-
- # Step 3 - install just the bare essentials by using our packed local
- # dependency, followed by all external production dependencies.
- cd "$KEYMAN_WIX_TEMP_LDMLKEYBOARDCOMPILER"
- # package-lock.json wasn't bundled; this is needed to keep dependency versions
- # consistent.
-
- # as of npm v8.x, even though we are only working with `dependencies`,
- # `devDependencies` is still checked, and as these modules are present in
- # devDependencies but are only available when in the repo path, we need to
- # remove them before attempting to continue.
- # Yuck! ref: https://github.com/npm/cli/issues/3975#issuecomment-985305678
- # ref: https://github.com/npm/cli/issues/2921
-
- cat "$KEYMAN_LDMLKEYBOARDCOMPILER_TEMP/package.json" | "$JQ" \
- '. | del(.devDependencies."@keymanapp/keyman-version")' \
- > "package.json"
-
- npm install kmver.tgz --production --no-optional
- npm install --production --no-optional
-
- # Clean up the npm pack artifacts for the dependencies.
- rm -rf kmver.tgz
-
- # We don't need the unit tests, source files, or build scripts
- rm -rf test src *.sh Makefile tsconfig*
-
- # Clean up our temporary build folder
- rm -rf "$KEYMAN_LDMLKEYBOARDCOMPILER_TEMP"
-}
\ No newline at end of file
diff --git a/developer/src/kmc/package.json b/developer/src/kmc/package.json
index 6bf2e7c00d..2ad4405009 100644
--- a/developer/src/kmc/package.json
+++ b/developer/src/kmc/package.json
@@ -1,43 +1,62 @@
{
- "name": "@keymanapp/ldml-keyboard-compiler",
- "description": "Keyman Developer LDML keyboard compiler",
+ "name": "@keymanapp/kmc",
+ "description": "Keyman Developer compiler command line tools",
"keywords": [
"keyboard",
"keyman",
"ldml",
- "unicode"
+ "unicode",
+ "lexical-model",
+ "predictive-text"
],
"scripts": {
"build": "tsc -b",
- "test": "cd test && tsc -b && cd .. && nyc --check-coverage --lines 90 --reporter=text mocha",
+ "bundle": "npm run bundle-kmc && npm run bundle-kmlmc && npm run bundle-kmlmi && npm run bundle-kmlmp",
+ "bundle-kmc": "esbuild build/src/kmc.js --bundle --platform=node > build/cjs-src/kmc.cjs",
+ "bundle-kmlmc": "esbuild build/src/kmlmc.js --bundle --platform=node > build/cjs-src/kmlmc.cjs",
+ "bundle-kmlmi": "esbuild build/src/kmlmi.js --bundle --platform=node > build/cjs-src/kmlmi.cjs",
+ "bundle-kmlmp": "esbuild build/src/kmlmp.js --bundle --platform=node > build/cjs-src/kmlmp.cjs",
+ "test": "cd test && tsc -b && cd .. && c8 mocha",
"prepublishOnly": "npm run build"
},
+ "type": "module",
"author": "Marc Durdin (https://github.com/mcdurdin)",
+ "contributors": [
+ "Eddie Antonio Santos ",
+ "Joshua Horton"
+ ],
"license": "MIT",
+ "bugs": {
+ "url": "https://github.com/keymanapp/keyman/issues"
+ },
"main": "build/src/kmc.js",
"bin": {
- "kmc": "build/src/kmc.js"
+ "kmc": "build/src/kmc.js",
+ "kmlmc": "build/src/kmlmc.js",
+ "kmlmp": "build/src/kmlmp.js",
+ "kmlmi": "build/src/kmlmi.js"
},
"dependencies": {
- "ajv": "^8.11.0",
- "commander": "^3.0.0",
- "crc-32": "^1.2.2",
- "restructure": "^3.0.0",
- "semver": "^7.3.7",
- "typescript": "^4.5.4",
- "xml2js": "^0.4.19"
+ "@keymanapp/keyman-version": "*",
+ "@keymanapp/kmc-keyboard": "*",
+ "@keymanapp/kmc-model": "*",
+ "@keymanapp/kmc-model-info": "*",
+ "@keymanapp/kmc-package": "*",
+ "@keymanapp/models-types": "*",
+ "commander": "^3.0.0"
},
"devDependencies": {
- "@keymanapp/keyman-version": "*",
"@types/chai": "^4.1.7",
"@types/mocha": "^5.2.7",
"@types/node": "^10.14.6",
"@types/xml2js": "^0.4.5",
+ "c8": "^7.12.0",
"chai": "^4.3.4",
"chalk": "^2.4.2",
+ "esbuild": "^0.15.8",
"mocha": "^8.4.0",
- "nyc": "^15.1.0",
- "ts-node": "^9.1.1"
+ "ts-node": "^9.1.1",
+ "typescript": "^4.5.4"
},
"mocha": {
"spec": "build/test/**/test-*.js",
diff --git a/developer/src/kmc/test/tsconfig.json b/developer/src/kmc/test/tsconfig.json
deleted file mode 100644
index faca8098d5..0000000000
--- a/developer/src/kmc/test/tsconfig.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "extends": "../../../../tsconfig-base.json",
-
- "compilerOptions": {
- "module": "commonjs",
- "moduleResolution": "node",
- "noImplicitAny": true,
- "sourceMap": true,
- "rootDir": ".",
- "rootDirs": ["./", "../src/"],
- "outDir": "../build/test",
- "baseUrl": ".",
- },
- "include": [
- "**/test-*.ts",
- "./helpers/index.ts"
- ],
- "references": [
- { "path": "../../../../common/web/keyman-version" },
- { "path": "../" }
- ]
-}
\ No newline at end of file
diff --git a/developer/src/kmc/tsconfig.json b/developer/src/kmc/tsconfig.json
index 5242668385..ad76703f61 100644
--- a/developer/src/kmc/tsconfig.json
+++ b/developer/src/kmc/tsconfig.json
@@ -1,27 +1,25 @@
{
- "extends": "../../../tsconfig-base.json",
+ "extends": "./tsconfig.kmc-base.json",
"compilerOptions": {
- "module": "commonjs",
- "target": "es2020",
- "moduleResolution": "node",
- "sourceMap": true,
"outDir": "build/src/",
"rootDir": "src/",
- "declaration": true,
- "alwaysStrict": true,
- "noImplicitThis": true,
- "noImplicitReturns": true,
- "noImplicitAny": true,
- "strictBindCallApply": true,
- "strictFunctionTypes": true,
- "noUnusedLocals": true
+ "baseUrl": ".",
+ "paths": {
+ "@keymanapp/kmc-keyboard": [ "../kmc-keyboard/src/main" ],
+ "@keymanapp/kmc-model": [ "../kmc-model/src/main" ],
+ "@keymanapp/kmc-model-info": [ "../kmc-model-info/src/model-info-compiler" ],
+ "@keymanapp/kmc-package": [ "../kmc-package/src/kmp-compiler" ],
+ }
},
"include": [
"src/**/*.ts"
],
"references": [
- { "path": "../../../common/web/keyman-version" },
- { "path": "../../../core/include/ldml/"}
+ { "path": "../../../common/web/keyman-version/tsconfig.esm.json" },
+ { "path": "../kmc-keyboard" },
+ { "path": "../kmc-model" },
+ { "path": "../kmc-model-info" },
+ { "path": "../kmc-package" },
]
}
diff --git a/developer/src/kmc/tsconfig.kmc-base.json b/developer/src/kmc/tsconfig.kmc-base.json
new file mode 100644
index 0000000000..8f79f3ec15
--- /dev/null
+++ b/developer/src/kmc/tsconfig.kmc-base.json
@@ -0,0 +1,18 @@
+{
+ "extends": "../../../tsconfig-base.json",
+
+ "compilerOptions": {
+ "module": "ES2022",
+ "target": "es2022",
+ "moduleResolution": "Node",
+ "forceConsistentCasingInFileNames": true,
+ "sourceMap": true,
+ "alwaysStrict": true,
+ "noImplicitThis": true,
+ "noImplicitReturns": true,
+ "noImplicitAny": true,
+ "strictBindCallApply": true,
+ "strictFunctionTypes": true,
+ "noUnusedLocals": true
+ },
+}
diff --git a/developer/src/kmlmc/.gitignore b/developer/src/kmlmc/.gitignore
deleted file mode 100644
index bbbfd24cf5..0000000000
--- a/developer/src/kmlmc/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-node_modules/
-dist/
-dist-tests/
-tsconfig.tsbuildinfo
-tests/tsconfig.tsbuildinfo
diff --git a/developer/src/kmlmc/.npmignore b/developer/src/kmlmc/.npmignore
deleted file mode 100644
index 73126b7338..0000000000
--- a/developer/src/kmlmc/.npmignore
+++ /dev/null
@@ -1,6 +0,0 @@
-# Ignore files required only in development.
-build.sh
-bundle.sh
-source/*
-tests/*
-tsconfig.json
diff --git a/developer/src/kmlmc/Makefile b/developer/src/kmlmc/Makefile
deleted file mode 100644
index b96c5e24cb..0000000000
--- a/developer/src/kmlmc/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# Keyman Developer - Lexical Model Compiler Makefile
-#
-
-!include ..\Defines.mak
-
-build: .virtual
- $(GIT_BASH_FOR_KEYMAN) build.sh
-
-clean: .virtual
-#TODO: move to build.sh `clean` target
- -rd /s/q dist
- -rd /s/q dist-tests
- -del tsconfig.tsbuildinfo
-
-test: .virtual
- $(GIT_BASH_FOR_KEYMAN) build.sh -tdd
-
-signcode:
- @rem nothing to do
-
-wrap-symbols:
- @rem nothing to do
-
-test-manifest:
- @rem This target needed as dependency for KMDECOMP
-
-install:
- @rem nothing to do
-
-!include ..\Target.mak
diff --git a/developer/src/kmlmc/README.md b/developer/src/kmlmc/README.md
deleted file mode 100644
index 93fb0facfd..0000000000
--- a/developer/src/kmlmc/README.md
+++ /dev/null
@@ -1,54 +0,0 @@
-Keyman Developer
-================
-
-This package provides the following Keyman **command line tools**:
-
- - `kmlmc` — takes **lexical model sources** and compiles them in to
- a **.js** file.
- - `kmlmp` — uses a `.model.kmp` file to generate a redistributable
- **lexical model package**.
- - `kmlmi` — merges Keyman lexical model `.model_info` files.
-
-`kmlmc` is intended to be used standalone, or as part of a build system.
-`kmlmp` is used only by command line tools. `kmlmi` is used exclusively
-in the [lexical-models repository][lexical models].
-
-In order to build [lexical models][], these tools must be built and
-compiled.
-
-[lexical models]: https://github.com/keymanapp/lexical-models
-
-
-Install
--------
-
-Install `kmlmc`, `kmlmp`, and `kmlmi` globally:
-
- npm install -g @keymanapp/lexical-model-compiler
-
-Usage
------
-
-To compile a lexical model from its `.model.ts` source, use `kmlmc`:
-
- kmlmc my-lexical-model.model.ts --outFile my-lexical-model.js
-
-To see more command line options by using the `--help` option:
-
- kmlmc --help
- kmlmp --help
- kmlmi --help
-
-How to build from source
-------------------------
-
-Run `build.sh`:
-
- ./build.sh
-
-
-How to run the tests
---------------------
-
- ./build.sh -test
-
diff --git a/developer/src/kmlmc/build.sh b/developer/src/kmlmc/build.sh
deleted file mode 100755
index 9d229e1195..0000000000
--- a/developer/src/kmlmc/build.sh
+++ /dev/null
@@ -1,123 +0,0 @@
-#!/usr/bin/env bash
-#
-# Compiles the developer tools, including the language model compilers.
-#
-
-# Exit on command failure and when using unset variables:
-set -eu
-
-## START STANDARD BUILD SCRIPT INCLUDE
-# adjust relative paths as necessary
-THIS_SCRIPT="$(greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null || readlink -f "${BASH_SOURCE[0]}")"
-. "$(dirname "$THIS_SCRIPT")/../../../resources/build/build-utils.sh"
-. "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
-## END STANDARD BUILD SCRIPT INCLUDE
-EX_USAGE=64
-
-# Where to find lexical model types.
-LEXICAL_MODELS_TYPES="$KEYMAN_ROOT/common/models/types"
-
-
-# Build the main script.
-build () {
- npm run build || fail "Could not build top-level JavaScript file."
-}
-
-display_usage ( ) {
- echo "Usage: $0 [-test] [-publish-to-npm]"
- echo " $0 -help"
- echo
- echo " -help displays this screen and exits"
- echo " -test runs unit tests after building"
- echo " -tdd runs unit tests WITHOUT building"
- echo " -skip-package-install, -S skip package installation"
- echo " -publish-to-npm publishes the current version to the npm package index"
- echo " -dry-run do build, etc, but don't actually publish"
-}
-
-################################ Main script ################################
-
-run_tests=0
-install_dependencies=1
-should_publish=0
-npm_dist_tag=
-should_dry_run=0
-
-# Process command-line arguments
-while [[ $# -gt 0 ]] ; do
- key="$1"
- case $key in
- -help|-h)
- display_usage
- exit
- ;;
- -dry-run)
- should_dry_run=1
- ;;
- -skip-package-install|-S)
- install_dependencies=0
- ;;
- -test)
- run_tests=1
- ;;
- -tdd)
- run_tests=1
- install_dependencies=0
- ;;
- -version)
- echo "Warning: -version is now ignored"
- ;;
- -tier)
- echo "Warning: -tier is now ignored"
- ;;
- -publish-to-npm)
- should_publish=1
- ;;
- *)
- echo "$0: invalid option: $key"
- display_usage
- exit $EX_USAGE
- esac
- shift # past the processed argument
-done
-
-# Dry run settings
-if (( should_dry_run )); then
- DRY_RUN=--dry-run
-else
- DRY_RUN=
-fi
-
-# Check if Node.JS/npm is installed.
-type npm >/dev/null ||\
- fail "Build environment setup error detected! Please ensure Node.js is installed!"
-
-if (( install_dependencies )) ; then
- verify_npm_setup
- # We need to build keyman-version and lm-worker with a script for now
- "$KEYMAN_ROOT/common/web/keyman-version/build.sh" || fail "Could not build keyman-version"
-fi
-
-build || fail "Compilation failed."
-echo "Typescript compilation successful."
-
-if (( run_tests )); then
- npm test || fail "Tests failed"
-fi
-
-if (( should_publish )); then
- if [[ $TIER == stable ]]; then
- npm_dist_tag=latest
- else
- npm_dist_tag=$TIER
- fi
-
- set_npm_version
-
- # Note: In either case, npm publish MUST be given --access public to publish
- # a package in the @keymanapp scope on the public npm package index.
- #
- # See `npm help publish` for more details.
- echo "Publishing $DRY_RUN npm package with tag $npm_dist_tag"
- npm publish $DRY_RUN --access public --tag $npm_dist_tag || fail "Could not publish $npm_dist_tag release."
-fi
diff --git a/developer/src/kmlmc/bundle.sh b/developer/src/kmlmc/bundle.sh
deleted file mode 100755
index 14143608ca..0000000000
--- a/developer/src/kmlmc/bundle.sh
+++ /dev/null
@@ -1,145 +0,0 @@
-#!/usr/bin/env bash
-
-set -eu
-
-## START STANDARD BUILD SCRIPT INCLUDE
-# adjust relative paths as necessary
-THIS_SCRIPT="$(greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null || readlink -f "${BASH_SOURCE[0]}")"
-. "$(dirname "$THIS_SCRIPT")/../../../resources/build/build-utils.sh"
-## END STANDARD BUILD SCRIPT INCLUDE
-
-. "$KEYMAN_ROOT/resources/build/jq.inc.sh"
-. "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
-
-display_usage() {
- echo "Usage: $0 --build-path path"
- echo " $0 --help"
- echo
- echo "This script is called from the Keyman Developer installer build"
- echo "and is not intended for standalone use."
- echo
- echo " --help displays this screen and exits"
- echo " --build-path path temporary path where archive will be built"
-}
-
-BUILD_PATH=
-
-# Process command-line arguments
-while [[ $# -gt 0 ]] ; do
- key="$1"
- case $key in
- -help|-h)
- display_usage
- exit
- ;;
- --build-path)
- shift
- BUILD_PATH="$1"
- ;;
- *)
- echo "$0: invalid option: $key"
- display_usage
- exit 64
- esac
- shift # past the processed argument
-done
-
-if [[ -z $BUILD_PATH ]]; then
- echo "Parameter --build-path is required"
- display_usage
- exit 64
-fi
-
-KEYMAN_WIX_TEMP_BASE="$BUILD_PATH"
-KEYMAN_WIX_TEMP_MODELCOMPILER="$BUILD_PATH/ModelCompiler"
-KEYMAN_MODELCOMPILER_TEMP=`mktemp -d`
-
-# We copy the built model compiler into a temporary folder in order to prepare
-# the node modules, as otherwise the workspace will interfere
-
-cp -R "$KEYMAN_ROOT/developer/src/kmlmc/"* "$KEYMAN_MODELCOMPILER_TEMP/"
-
-cd "$KEYMAN_MODELCOMPILER_TEMP"
-
-# We use `npm pack` to extract only the aspects of the model-compiler actually
-# needed for distribution. While we could use npm-bundle or similar, that adds
-# extra, unwanted cruft; our approach gives us more control of the set of files
-# distributed with the Keyman Developer installer.
-#
-# For users on other operating systems, node.js is a dependency and the compiler
-# can be installed with `npm install @keymanapp/lexical-model-compiler`.
-
-# We copy the files to a temp folder in order to exclude thumbs.db, .vs, etc
-# from harvesting
-rm -rf "$KEYMAN_WIX_TEMP_MODELCOMPILER"
-
-# Step 1 - npm-pack the model compiler package, then unpack it in our bundling
-# directory. This automatically strips the package to its barebones.
-set_npm_version
-npm pack
-mv keymanapp-lexical-model-compiler*.tgz kmlmc.tgz
-mv kmlmc.tgz "$KEYMAN_WIX_TEMP_BASE"
-
-# We extract the npm-packed version of the model compiler in order to reproduce
-# our needed bundle.
-cd "$KEYMAN_WIX_TEMP_BASE"
-tar xvzf kmlmc.tgz
-
-# Creates the directory referenced by $(KEYMAN_WIX_TEMP_MODELCOMPILER).
-mv package ModelCompiler
-
-# Cleans up the npm pack artifacts, which are no longer needed.
-rm kmlmc.tgz
-
-# Step 2 - the model compiler has one in-repo dependency that will also need to
-# be packed. Managing other in-repo dependencies will be simpler; they install
-# into ModelCompiler's extracted bundle.
-
-mkdir -p "$KEYMAN_MODELCOMPILER_TEMP/node_modules/@keymanapp/"
-cp -R "$KEYMAN_ROOT/node_modules/@keymanapp/models-types" "$KEYMAN_MODELCOMPILER_TEMP/node_modules/@keymanapp/"
-
-cd "$KEYMAN_MODELCOMPILER_TEMP/node_modules/@keymanapp/models-types"
-set_npm_version
-npm pack
-mv keymanapp-models-types*.tgz kmtypes.tgz
-mv kmtypes.tgz "$KEYMAN_WIX_TEMP_MODELCOMPILER"
-
-
-cp -R "$KEYMAN_ROOT/node_modules/@keymanapp/keyman-version" "$KEYMAN_MODELCOMPILER_TEMP/node_modules/@keymanapp/"
-
-cd "$KEYMAN_MODELCOMPILER_TEMP/node_modules/@keymanapp/keyman-version"
-set_npm_version
-npm pack
-mv keymanapp-keyman-version*.tgz kmver.tgz
-mv kmver.tgz "$KEYMAN_WIX_TEMP_MODELCOMPILER"
-
-# Step 3 - install just the bare essentials by using our packed local
-# dependency, followed by all external production dependencies.
-cd "$KEYMAN_WIX_TEMP_MODELCOMPILER"
-# package-lock.json wasn't bundled; this is needed to keep dependency versions
-# consistent.
-
-# as of npm v8.x, even though we are only working with `dependencies`,
-# `devDependencies` is still checked, and as these modules are present in
-# devDependencies but are only available when in the repo path, we need to
-# remove them before attempting to continue.
-# Yuck! ref: https://github.com/npm/cli/issues/3975#issuecomment-985305678
-# ref: https://github.com/npm/cli/issues/2921
-# can't use npm uninstall because it depends on @keymanapp/models-types being
-# present!
-
-cat "$KEYMAN_MODELCOMPILER_TEMP/package.json" | "$JQ" \
- '. | del(.devDependencies."@keymanapp/models-templates") | del(.devDependencies."@keymanapp/keyman-version") | del(.devDependencies."@keymanapp/models-wordbreakers")' \
- > "package.json"
-
-npm install kmtypes.tgz --production --no-optional
-npm install kmver.tgz --production --no-optional
-npm install --production --no-optional
-
-# Clean up the npm pack artifacts for the dependencies.
-rm kmtypes.tgz
-rm kmver.tgz
-
-# We don't need the unit tests
-rm -rf "$KEYMAN_WIX_TEMP_MODELCOMPILER/tests"
-rm -rf "$KEYMAN_MODELCOMPILER_TEMP"
\ No newline at end of file
diff --git a/developer/src/kmlmc/tests/tsconfig.json b/developer/src/kmlmc/tests/tsconfig.json
deleted file mode 100644
index 521ddc6c3b..0000000000
--- a/developer/src/kmlmc/tests/tsconfig.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "extends": "../../../../tsconfig-base.json",
-
- "compilerOptions": {
- "module": "commonjs",
- "moduleResolution": "node",
- "noImplicitAny": true,
- "sourceMap": true,
- "rootDir": "./",
- "outDir": "../dist-tests/"
- },
- "include": [
- "**/test-*.ts",
- "helpers/index.ts"
- ],
- "references": [
- { "path": "../../../../common/web/keyman-version" },
- { "path": "../../../../common/models/types" },
- { "path": "../../../../common/models/templates" },
- { "path": "../../../../common/models/wordbreakers" },
- { "path": "../"}
- ]
-}
\ No newline at end of file
diff --git a/developer/src/kmlmc/tsconfig.json b/developer/src/kmlmc/tsconfig.json
deleted file mode 100644
index 37d642b8c1..0000000000
--- a/developer/src/kmlmc/tsconfig.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "extends": "../../../tsconfig-base.json",
-
- "compilerOptions": {
- "module": "commonjs",
- "target": "es2017",
- "moduleResolution": "node",
- "sourceMap": true,
- "outDir": "dist/",
- "rootDir": "source/",
- "declaration": true,
- "alwaysStrict": true,
- "noImplicitThis": true,
- "noImplicitReturns": true,
- "noImplicitAny": true,
- "strictBindCallApply": true,
- "strictFunctionTypes": true,
- "noUnusedLocals": true
- },
- "include": [
- "source/**/*.ts"
- ],
- "references": [
- { "path": "../../../common/web/keyman-version" },
- { "path": "../../../common/models/types" },
- { "path": "../../../common/models/templates" },
- { "path": "../../../common/models/wordbreakers" },
- ]
-}
diff --git a/developer/src/test/auto/Makefile b/developer/src/test/auto/Makefile
index 1f868c14e1..635d933bd1 100644
--- a/developer/src/test/auto/Makefile
+++ b/developer/src/test/auto/Makefile
@@ -23,11 +23,13 @@ developer-tests: \
kmcomp-x64-structures \
kmconvert \
kmx-file-languages \
- lexical-model-compiler \
model-ts-parser \
package-info \
- kmlmc \
- kmc
+ kmc \
+ kmc-keyboard \
+ kmc-model \
+ kmc-model-info \
+ kmc-package
# ----------------------------------------------------------------------
@@ -68,11 +70,6 @@ kmconvert: .virtual
cd $(DEVELOPER_ROOT)\src\test\auto\kmconvert
$(MAKE) $(TARGET)
-lexical-model-compiler: .virtual
-# TODO: move this to a test target in kmlmc
- cd $(DEVELOPER_ROOT)\src\kmlmc
- $(GIT_BASH_FOR_KEYMAN) build.sh -test
-
model-ts-parser: .virtual
rem TODO
# cd $(DEVELOPER_ROOT)\src\test\auto\model-ts-parser
@@ -90,8 +87,20 @@ kmc: .virtual
cd $(DEVELOPER_ROOT)\src\kmc
$(MAKE) $(TARGET)
-kmlmc: .virtual
- cd $(DEVELOPER_ROOT)\src\kmlmc
+kmc-keyboard: .virtual
+ cd $(DEVELOPER_ROOT)\src\kmc-keyboard
+ $(MAKE) $(TARGET)
+
+kmc-model: .virtual
+ cd $(DEVELOPER_ROOT)\src\kmc-model
+ $(MAKE) $(TARGET)
+
+kmc-model-info: .virtual
+ cd $(DEVELOPER_ROOT)\src\kmc-model-info
+ $(MAKE) $(TARGET)
+
+kmc-package: .virtual
+ cd $(DEVELOPER_ROOT)\src\kmc-package
$(MAKE) $(TARGET)
# ----------------------------------------------------------------------
diff --git a/developer/src/tike/Makefile b/developer/src/tike/Makefile
index fecaae5d31..da991b99b9 100644
--- a/developer/src/tike/Makefile
+++ b/developer/src/tike/Makefile
@@ -11,6 +11,9 @@ build: version.res manifest.res icons dirs xml xsd pull-core
$(TDS2DBG) $(WIN32_TARGET_PATH)\tike.exe
$(COPY) $(WIN32_TARGET_PATH)\tike.exe $(DEVELOPER_PROGRAM)
$(COPY) kmlmc.cmd $(DEVELOPER_PROGRAM)
+ $(COPY) kmlmi.cmd $(DEVELOPER_PROGRAM)
+ $(COPY) kmlmp.cmd $(DEVELOPER_PROGRAM)
+ $(COPY) kmc.cmd $(DEVELOPER_PROGRAM)
$(COPY) $(KEYMAN_ROOT)\core\build\x86\$(TARGET_PATH)\src\kmnkbp0-0.dll $(DEVELOPER_PROGRAM)
if exist $(WIN32_TARGET_PATH)\tike.dbg $(COPY) $(WIN32_TARGET_PATH)\tike.dbg $(DEVELOPER_DEBUGPATH)
diff --git a/docs/npm-packages.md b/docs/npm-packages.md
index 2a3cea707d..221180cfe8 100644
--- a/docs/npm-packages.md
+++ b/docs/npm-packages.md
@@ -8,10 +8,18 @@ Currently, we're using TeamCity for this.
Packages are **never** published from a developer's machine.
-## List of current npm packages
+## List of current published npm packages
-* `@keymanapp/models-types` -- located at `common/models-types`
-* `@keymanapp/lexical-model-compiler` -- located at `developer/src/kmlmc`
+* `@keymanapp/models-types` -- located at `common/models/types`
+* `@keymanapp/kmc` -- located at `developer/src/kmc`
+* `@keymanapp/kmc-keyboard` -- located at `developer/src/kmc-keyboard`
+* `@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`
+
+### Deprecated npm packages
+
+* `@keymanapp/lexical-model-compiler` -- replaced by `@keymanapp/kmc`
## For CI developers
@@ -23,56 +31,68 @@ server.
This is typically done with:
```bash
-./build.sh -test
+./build.sh configure build test
```
-Once the build succeeds and the tests pass, the version is set in
+Once the build succeeds and the tests pass, you can publish! Use the following
+script for this (**only on the CI server**!); during this, the version is set in
`package.json`:
```bash
-./build.sh -version 12.0.${BUILD_NUMBER} -tier ${tier}
+./build.sh publish
```
-Now you can publish! Use the following script for this (again, **only on the CI server**!)
+It is then uploaded to the npm package directory. **Ensure that the compiled
+sources are included in the tarball**. For example:
```bash
-./build.sh -publish-to-npm -tier ${tier}
-```
-
-It is then uploaded to the npm package directory. **Ensure that the
-compiled sources are included in the tarball**. For example,
-
-```bash
-$ npm publish
-npm notice 📦 @keymanapp/lexical-model-compiler@0.0.0
+$ ./build.sh publish
+npm notice
+npm notice 📦 @keymanapp/kmc@16.0.61-alpha-local
npm notice === Tarball Contents ===
-npm notice 12.4kB dist/lexical-model-compiler/build-trie.js
-npm notice 1.2kB dist/kmlmc.js
-npm notice 3.0kB dist/kmlmi.js
-npm notice 1.4kB dist/kmlmp.js
-npm notice 5.0kB dist/package-compiler/kmp-compiler.js
-npm notice 55B dist/package-compiler/kmp-json-file.js
-npm notice 552B dist/package-compiler/kps-file.js
-npm notice 4.6kB dist/lexical-model-compiler/lexical-model-compiler.js
-npm notice 315B dist/lexical-model-compiler/lexical-model.js
-npm notice 158B dist/util/min-keyman-version.js
-npm notice 4.5kB dist/model-info-compiler/model-info-compiler.js
-npm notice 57B dist/lexical-model-compiler/model-info-file.js
-npm notice 341B dist/lexical-model-compiler/stub.js
-npm notice 115B dist/util/sysexits.js
-npm notice 2.1kB dist/util/util.js
-npm notice 1.4kB package.json
-npm notice 1.0kB README.md
+npm notice 841B Makefile
+npm notice 2.8kB README.md
+npm notice 2.5kB build.sh
+npm notice 116B build/src/kmc.d.ts
+npm notice 114B build/src/kmc.d.ts.map
+npm notice 2.8kB build/src/kmc.js
+npm notice 2.6kB build/src/kmc.js.map
+npm notice 120B build/src/kmlmc.d.ts
+npm notice 118B build/src/kmlmc.d.ts.map
+npm notice 1.4kB build/src/kmlmc.js
+npm notice 1.4kB build/src/kmlmc.js.map
+npm notice 131B build/src/kmlmi.d.ts
+npm notice 118B build/src/kmlmi.d.ts.map
+npm notice 3.1kB build/src/kmlmi.js
+npm notice 2.7kB build/src/kmlmi.js.map
+npm notice 128B build/src/kmlmp.d.ts
+npm notice 118B build/src/kmlmp.d.ts.map
+npm notice 1.6kB build/src/kmlmp.js
+npm notice 1.5kB build/src/kmlmp.js.map
+npm notice 285B build/src/util/sysexits.d.ts
+npm notice 186B build/src/util/sysexits.d.ts.map
+npm notice 51B build/src/util/sysexits.js
+npm notice 128B build/src/util/sysexits.js.map
+npm notice 29.8kB build/tsconfig.tsbuildinfo
+npm notice 5.4kB bundle.inc.sh
+npm notice 1.7kB package.json
+npm notice 2.8kB src/kmc.ts
+npm notice 1.4kB src/kmlmc.ts
+npm notice 3.2kB src/kmlmi.ts
+npm notice 1.6kB src/kmlmp.ts
+npm notice 237B src/util/sysexits.ts
+npm notice 740B tsconfig.json
+npm notice 449B tsconfig.kmc-base.json
```
For every release of **Keyman Developer**, the CI publishes a release of
-`@keymanapp/lexical-model-compiler`. The version number is locked with
-the particular version of Keyman Developer.
+`@keymanapp/kmc`. The version number is locked with the particular version of
+Keyman Developer.
### `set_npm_version`
-This helper function sets the version in the `package.json` for the
-given package, according to the VERSION_WITH_TAG variable.
+This helper function sets the version in the `package.json` for the given
+package, according to the VERSION_WITH_TAG variable.
```bash
. $KEYMAN_ROOT/resources/shellHelperFunctions.sh
diff --git a/package-lock.json b/package-lock.json
index 16944fd691..17a5cf6a9b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,7 +9,10 @@
"resources/gosh",
"resources/build/version",
"core/include/ldml",
- "developer/src/kmlmc",
+ "developer/src/kmc-keyboard",
+ "developer/src/kmc-model",
+ "developer/src/kmc-model-info",
+ "developer/src/kmc-package",
"developer/src/kmc",
"developer/src/server",
"common/models/*",
@@ -19,7 +22,8 @@
"web"
],
"dependencies": {
- "@keymanapp/hextobin": "file:common/tools/hextobin"
+ "@keymanapp/hextobin": "file:common/tools/hextobin",
+ "@keymanapp/keyman-version": "file:common/web/keyman-version"
},
"devDependencies": {
"chai": "^4.3.4",
@@ -234,7 +238,7 @@
"eventemitter3": "^4.0.0"
},
"devDependencies": {
- "@keymanapp/lexical-model-compiler": "*",
+ "@keymanapp/kmc": "*",
"@keymanapp/resources-gosh": "*",
"@types/node": "^11.9.4",
"chai": "^4.3.4",
@@ -457,46 +461,74 @@
}
},
"developer/src/kmc": {
- "name": "@keymanapp/ldml-keyboard-compiler",
+ "name": "@keymanapp/kmc",
"license": "MIT",
"dependencies": {
- "ajv": "^8.11.0",
- "commander": "^3.0.0",
- "crc-32": "^1.2.2",
- "restructure": "^3.0.0",
- "semver": "^7.3.7",
- "typescript": "^4.5.4",
- "xml2js": "^0.4.19"
+ "@keymanapp/keyman-version": "*",
+ "@keymanapp/kmc-keyboard": "*",
+ "@keymanapp/kmc-model": "*",
+ "@keymanapp/kmc-model-info": "*",
+ "@keymanapp/kmc-package": "*",
+ "@keymanapp/models-types": "*",
+ "commander": "^3.0.0"
},
"bin": {
- "kmc": "build/src/kmc.js"
+ "kmc": "build/src/kmc.js",
+ "kmlmc": "build/src/kmlmc.js",
+ "kmlmi": "build/src/kmlmi.js",
+ "kmlmp": "build/src/kmlmp.js"
},
"devDependencies": {
- "@keymanapp/keyman-version": "*",
"@types/chai": "^4.1.7",
"@types/mocha": "^5.2.7",
"@types/node": "^10.14.6",
"@types/xml2js": "^0.4.5",
+ "c8": "^7.12.0",
+ "chai": "^4.3.4",
+ "chalk": "^2.4.2",
+ "esbuild": "^0.15.8",
+ "mocha": "^8.4.0",
+ "ts-node": "^9.1.1",
+ "typescript": "^4.5.4"
+ }
+ },
+ "developer/src/kmc-keyboard": {
+ "name": "@keymanapp/kmc-keyboard",
+ "license": "MIT",
+ "dependencies": {
+ "@keymanapp/keyman-version": "*",
+ "ajv": "^8.11.0",
+ "crc-32": "^1.2.2",
+ "restructure": "^3.0.0",
+ "semver": "^7.3.7",
+ "xml2js": "^0.4.19"
+ },
+ "devDependencies": {
+ "@types/chai": "^4.1.7",
+ "@types/mocha": "^5.2.7",
+ "@types/node": "^10.14.6",
+ "@types/xml2js": "^0.4.5",
+ "c8": "^7.12.0",
"chai": "^4.3.4",
"chalk": "^2.4.2",
"mocha": "^8.4.0",
- "nyc": "^15.1.0",
- "ts-node": "^9.1.1"
+ "ts-node": "^9.1.1",
+ "typescript": "^4.5.4"
}
},
- "developer/src/kmc/node_modules/@types/mocha": {
+ "developer/src/kmc-keyboard/node_modules/@types/mocha": {
"version": "5.2.7",
"resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
"integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
"dev": true
},
- "developer/src/kmc/node_modules/@types/node": {
+ "developer/src/kmc-keyboard/node_modules/@types/node": {
"version": "10.17.60",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
"integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
"dev": true
},
- "developer/src/kmc/node_modules/ajv": {
+ "developer/src/kmc-keyboard/node_modules/ajv": {
"version": "8.11.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
"integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
@@ -511,6 +543,660 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
+ "developer/src/kmc-keyboard/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "developer/src/kmc-keyboard/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "developer/src/kmc-keyboard/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "developer/src/kmc-keyboard/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "developer/src/kmc-keyboard/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "developer/src/kmc-keyboard/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "developer/src/kmc-keyboard/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "developer/src/kmc-model": {
+ "name": "@keymanapp/kmc-model",
+ "license": "MIT",
+ "dependencies": {
+ "@keymanapp/keyman-version": "*",
+ "@keymanapp/models-types": "*",
+ "typescript": "^4.8.3"
+ },
+ "devDependencies": {
+ "@types/chai": "^4.1.7",
+ "@types/mocha": "^5.2.7",
+ "@types/node": "^10.14.6",
+ "@types/xml2js": "^0.4.5",
+ "c8": "^7.12.0",
+ "chai": "^4.3.4",
+ "chalk": "^2.4.2",
+ "esbuild": "^0.15.7",
+ "mocha": "^10.0.0",
+ "ts-node": "^9.1.1"
+ }
+ },
+ "developer/src/kmc-model-info": {
+ "name": "@keymanapp/kmc-model-info",
+ "license": "MIT",
+ "dependencies": {
+ "@keymanapp/keyman-version": "*",
+ "@keymanapp/kmc-package": "*",
+ "@keymanapp/models-types": "*"
+ },
+ "devDependencies": {
+ "@types/chai": "^4.1.7",
+ "@types/mocha": "^5.2.7",
+ "@types/node": "^10.14.6",
+ "@types/xml2js": "^0.4.5",
+ "c8": "^7.12.0",
+ "chai": "^4.3.4",
+ "chalk": "^2.4.2",
+ "mocha": "^8.4.0",
+ "ts-node": "^9.1.1",
+ "typescript": "^4.5.4"
+ }
+ },
+ "developer/src/kmc-model-info/node_modules/@types/mocha": {
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
+ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
+ "dev": true
+ },
+ "developer/src/kmc-model-info/node_modules/@types/node": {
+ "version": "10.17.60",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
+ "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
+ "dev": true
+ },
+ "developer/src/kmc-model-info/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "developer/src/kmc-model-info/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "developer/src/kmc-model-info/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "developer/src/kmc-model-info/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "developer/src/kmc-model-info/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "developer/src/kmc-model-info/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "developer/src/kmc-model/node_modules/@types/mocha": {
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
+ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
+ "dev": true
+ },
+ "developer/src/kmc-model/node_modules/@types/node": {
+ "version": "10.17.60",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
+ "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
+ "dev": true
+ },
+ "developer/src/kmc-model/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "developer/src/kmc-model/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "developer/src/kmc-model/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "developer/src/kmc-model/node_modules/chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "developer/src/kmc-model/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "developer/src/kmc-model/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "developer/src/kmc-model/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "developer/src/kmc-model/node_modules/glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "developer/src/kmc-model/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "developer/src/kmc-model/node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "developer/src/kmc-model/node_modules/log-symbols/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "developer/src/kmc-model/node_modules/log-symbols/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "developer/src/kmc-model/node_modules/log-symbols/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "developer/src/kmc-model/node_modules/log-symbols/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "developer/src/kmc-model/node_modules/log-symbols/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "developer/src/kmc-model/node_modules/log-symbols/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "developer/src/kmc-model/node_modules/mocha": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz",
+ "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==",
+ "dev": true,
+ "dependencies": {
+ "@ungap/promise-all-settled": "1.1.2",
+ "ansi-colors": "4.1.1",
+ "browser-stdout": "1.3.1",
+ "chokidar": "3.5.3",
+ "debug": "4.3.4",
+ "diff": "5.0.0",
+ "escape-string-regexp": "4.0.0",
+ "find-up": "5.0.0",
+ "glob": "7.2.0",
+ "he": "1.2.0",
+ "js-yaml": "4.1.0",
+ "log-symbols": "4.1.0",
+ "minimatch": "5.0.1",
+ "ms": "2.1.3",
+ "nanoid": "3.3.3",
+ "serialize-javascript": "6.0.0",
+ "strip-json-comments": "3.1.1",
+ "supports-color": "8.1.1",
+ "workerpool": "6.2.1",
+ "yargs": "16.2.0",
+ "yargs-parser": "20.2.4",
+ "yargs-unparser": "2.0.0"
+ },
+ "bin": {
+ "_mocha": "bin/_mocha",
+ "mocha": "bin/mocha.js"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mochajs"
+ }
+ },
+ "developer/src/kmc-model/node_modules/mocha/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "developer/src/kmc-model/node_modules/mocha/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "developer/src/kmc-model/node_modules/mocha/node_modules/minimatch": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
+ "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "developer/src/kmc-model/node_modules/mocha/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "developer/src/kmc-model/node_modules/mocha/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "developer/src/kmc-model/node_modules/nanoid": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
+ "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
+ "dev": true,
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "developer/src/kmc-model/node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "developer/src/kmc-model/node_modules/serialize-javascript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
+ "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+ "dev": true,
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "developer/src/kmc-model/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "developer/src/kmc-model/node_modules/workerpool": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
+ "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==",
+ "dev": true
+ },
+ "developer/src/kmc-package": {
+ "name": "@keymanapp/kmc-package",
+ "license": "MIT",
+ "dependencies": {
+ "jszip": "^3.7.0"
+ },
+ "devDependencies": {
+ "@types/chai": "^4.1.7",
+ "@types/mocha": "^5.2.7",
+ "@types/node": "^10.14.6",
+ "c8": "^7.12.0",
+ "chai": "^4.3.4",
+ "chalk": "^2.4.2",
+ "mocha": "^8.4.0",
+ "ts-node": "^9.1.1",
+ "typescript": "^4.5.4"
+ }
+ },
+ "developer/src/kmc-package/node_modules/@types/mocha": {
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
+ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
+ "dev": true
+ },
+ "developer/src/kmc-package/node_modules/@types/node": {
+ "version": "10.17.60",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
+ "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
+ "dev": true
+ },
+ "developer/src/kmc-package/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "developer/src/kmc-package/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "developer/src/kmc-package/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "developer/src/kmc-package/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "developer/src/kmc-package/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "developer/src/kmc-package/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "developer/src/kmc/node_modules/@types/mocha": {
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
+ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
+ "dev": true
+ },
+ "developer/src/kmc/node_modules/@types/node": {
+ "version": "10.17.60",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
+ "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
+ "dev": true
+ },
"developer/src/kmc/node_modules/ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
@@ -561,11 +1247,6 @@
"node": ">=4"
}
},
- "developer/src/kmc/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
- },
"developer/src/kmc/node_modules/supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -580,6 +1261,7 @@
},
"developer/src/kmlmc": {
"name": "@keymanapp/lexical-model-compiler",
+ "extraneous": true,
"license": "MIT",
"dependencies": {
"@keymanapp/models-types": "*",
@@ -610,80 +1292,6 @@
"node": ">=16.0.0"
}
},
- "developer/src/kmlmc/node_modules/@types/mocha": {
- "version": "5.2.7",
- "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
- "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
- "dev": true
- },
- "developer/src/kmlmc/node_modules/@types/node": {
- "version": "10.17.60",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
- "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
- "dev": true
- },
- "developer/src/kmlmc/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "developer/src/kmlmc/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "developer/src/kmlmc/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "developer/src/kmlmc/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "developer/src/kmlmc/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "developer/src/kmlmc/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
"developer/src/server": {
"name": "@keymanapp/developer-server",
"license": "MIT",
@@ -1035,401 +1643,12 @@
"tunnel": "^0.0.6"
}
},
- "node_modules/@ampproject/remapping": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
- "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
- "dev": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.1.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
- "dev": true,
- "dependencies": {
- "@babel/highlight": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/compat-data": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.0.tgz",
- "integrity": "sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/core": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.0.tgz",
- "integrity": "sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ==",
- "dev": true,
- "dependencies": {
- "@ampproject/remapping": "^2.1.0",
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.19.0",
- "@babel/helper-compilation-targets": "^7.19.0",
- "@babel/helper-module-transforms": "^7.19.0",
- "@babel/helpers": "^7.19.0",
- "@babel/parser": "^7.19.0",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.0",
- "@babel/types": "^7.19.0",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.1",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/@babel/core/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/generator": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz",
- "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.19.0",
- "@jridgewell/gen-mapping": "^0.3.2",
- "jsesc": "^2.5.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
- "dev": true,
- "dependencies": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz",
- "integrity": "sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.19.0",
- "@babel/helper-validator-option": "^7.18.6",
- "browserslist": "^4.20.2",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
- "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
- "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
- "dev": true,
- "dependencies": {
- "@babel/template": "^7.18.10",
- "@babel/types": "^7.19.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
- "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-imports": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
- "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz",
- "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-simple-access": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/helper-validator-identifier": "^7.18.6",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.0",
- "@babel/types": "^7.19.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-simple-access": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz",
- "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
- "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz",
- "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
- "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-option": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
- "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helpers": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz",
- "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==",
- "dev": true,
- "dependencies": {
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.0",
- "@babel/types": "^7.19.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "node_modules/@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"dev": true
},
- "node_modules/@babel/highlight/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.0.tgz",
- "integrity": "sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==",
- "dev": true,
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/template": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
- "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.18.10",
- "@babel/types": "^7.18.10"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.0.tgz",
- "integrity": "sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.19.0",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.19.0",
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.19.0",
- "@babel/types": "^7.19.0",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/types": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz",
- "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-string-parser": "^7.18.10",
- "@babel/helper-validator-identifier": "^7.18.6",
- "to-fast-properties": "^2.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@colors/colors": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
@@ -1439,94 +1658,39 @@
"node": ">=0.1.90"
}
},
- "node_modules/@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
- "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.8.tgz",
+ "integrity": "sha512-CyEWALmn+no/lbgbAJsbuuhT8s2J19EJGHkeyAwjbFJMrj80KJ9zuYsoAvidPTU7BgBf87r/sgae8Tw0dbOc4Q==",
+ "cpu": [
+ "arm"
+ ],
"dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
"dependencies": {
- "camelcase": "^5.3.1",
- "find-up": "^4.1.0",
- "get-package-type": "^0.1.0",
- "js-yaml": "^3.13.1",
- "resolve-from": "^5.0.0"
+ "esbuild-wasm": "0.15.8"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
}
},
- "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.8.tgz",
+ "integrity": "sha512-pE5RQsOTSERCtfZdfCT25wzo7dfhOSlhAXcsZmuvRYhendOv7djcdvtINdnDp2DAjP17WXlBB4nBO6sHLczmsg==",
+ "cpu": [
+ "loong64"
+ ],
"dev": true,
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
+ "node": ">=12"
}
},
"node_modules/@istanbuljs/schema": {
@@ -1538,19 +1702,6 @@
"node": ">=8"
}
},
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
- "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
- "dev": true,
- "dependencies": {
- "@jridgewell/set-array": "^1.0.0",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
"node_modules/@jridgewell/resolve-uri": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz",
@@ -1560,15 +1711,6 @@
"node": ">=6.0.0"
}
},
- "node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
- "dev": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.13",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz",
@@ -1609,18 +1751,30 @@
"resolved": "common/web/keyman-version",
"link": true
},
- "node_modules/@keymanapp/ldml-keyboard-compiler": {
+ "node_modules/@keymanapp/kmc": {
"resolved": "developer/src/kmc",
"link": true
},
+ "node_modules/@keymanapp/kmc-keyboard": {
+ "resolved": "developer/src/kmc-keyboard",
+ "link": true
+ },
+ "node_modules/@keymanapp/kmc-model": {
+ "resolved": "developer/src/kmc-model",
+ "link": true
+ },
+ "node_modules/@keymanapp/kmc-model-info": {
+ "resolved": "developer/src/kmc-model-info",
+ "link": true
+ },
+ "node_modules/@keymanapp/kmc-package": {
+ "resolved": "developer/src/kmc-package",
+ "link": true
+ },
"node_modules/@keymanapp/ldml-keyboard-constants": {
"resolved": "core/include/ldml",
"link": true
},
- "node_modules/@keymanapp/lexical-model-compiler": {
- "resolved": "developer/src/kmlmc",
- "link": true
- },
"node_modules/@keymanapp/lexical-model-layer": {
"resolved": "common/predictive-text",
"link": true
@@ -2292,6 +2446,12 @@
"resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
"integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ=="
},
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
+ "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
+ "dev": true
+ },
"node_modules/@types/json-buffer": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz",
@@ -2460,19 +2620,6 @@
"node": ">= 6.0.0"
}
},
- "node_modules/aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "dev": true,
- "dependencies": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -2539,30 +2686,12 @@
"resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
"integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY="
},
- "node_modules/append-transform": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz",
- "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==",
- "dev": true,
- "dependencies": {
- "default-require-extensions": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/aproba": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
"devOptional": true
},
- "node_modules/archy": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
- "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==",
- "dev": true
- },
"node_modules/are-we-there-yet": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
@@ -2757,34 +2886,6 @@
"integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
"dev": true
},
- "node_modules/browserslist": {
- "version": "4.21.3",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz",
- "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- }
- ],
- "dependencies": {
- "caniuse-lite": "^1.0.30001370",
- "electron-to-chromium": "^1.4.202",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.5"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
"node_modules/browserstack": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.3.tgz",
@@ -2921,6 +3022,41 @@
"node": ">= 0.8"
}
},
+ "node_modules/c8": {
+ "version": "7.12.0",
+ "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz",
+ "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==",
+ "dev": true,
+ "dependencies": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@istanbuljs/schema": "^0.1.3",
+ "find-up": "^5.0.0",
+ "foreground-child": "^2.0.0",
+ "istanbul-lib-coverage": "^3.2.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-reports": "^3.1.4",
+ "rimraf": "^3.0.2",
+ "test-exclude": "^6.0.0",
+ "v8-to-istanbul": "^9.0.0",
+ "yargs": "^16.2.0",
+ "yargs-parser": "^20.2.9"
+ },
+ "bin": {
+ "c8": "bin/c8.js"
+ },
+ "engines": {
+ "node": ">=10.12.0"
+ }
+ },
+ "node_modules/c8/node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/cacheable-lookup": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
@@ -2946,21 +3082,6 @@
"node": ">=8"
}
},
- "node_modules/caching-transform": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz",
- "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==",
- "dev": true,
- "dependencies": {
- "hasha": "^5.0.0",
- "make-dir": "^3.0.0",
- "package-hash": "^4.0.0",
- "write-file-atomic": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
@@ -2969,22 +3090,6 @@
"node": ">=6"
}
},
- "node_modules/caniuse-lite": {
- "version": "1.0.30001390",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001390.tgz",
- "integrity": "sha512-sS4CaUM+/+vqQUlCvCJ2WtDlV81aWtHhqeEVkLokVJJa3ViN4zDxAGfq9R8i1m90uGHxo99cy10Od+lvn3hf0g==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- }
- ]
- },
"node_modules/caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
@@ -3062,15 +3167,6 @@
"node": ">=10"
}
},
- "node_modules/clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/cliui": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
@@ -3185,12 +3281,6 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
"integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow=="
},
- "node_modules/commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true
- },
"node_modules/component-emitter": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
@@ -3480,18 +3570,6 @@
"node": ">=0.12"
}
},
- "node_modules/default-require-extensions": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz",
- "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==",
- "dev": true,
- "dependencies": {
- "strip-bom": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/defer-to-connect": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
@@ -3640,12 +3718,6 @@
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
- "node_modules/electron-to-chromium": {
- "version": "1.4.242",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.242.tgz",
- "integrity": "sha512-nPdgMWtjjWGCtreW/2adkrB2jyHjClo9PtVhR6rW+oxa4E4Wom642Tn+5LslHP3XPL5MCpkn5/UEY60EXylNeQ==",
- "dev": true
- },
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -3745,12 +3817,6 @@
"node": ">=6"
}
},
- "node_modules/es6-error": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
- "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
- "dev": true
- },
"node_modules/es6-promise": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
@@ -3771,6 +3837,379 @@
"resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.6.tgz",
"integrity": "sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA=="
},
+ "node_modules/esbuild": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.8.tgz",
+ "integrity": "sha512-Remsk2dmr1Ia65sU+QasE6svJbsHe62lzR+CnjpUvbZ+uSYo1SitiOWPRfZQkCu82YWZBBKXiD/j0i//XWMZ+Q==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/android-arm": "0.15.8",
+ "@esbuild/linux-loong64": "0.15.8",
+ "esbuild-android-64": "0.15.8",
+ "esbuild-android-arm64": "0.15.8",
+ "esbuild-darwin-64": "0.15.8",
+ "esbuild-darwin-arm64": "0.15.8",
+ "esbuild-freebsd-64": "0.15.8",
+ "esbuild-freebsd-arm64": "0.15.8",
+ "esbuild-linux-32": "0.15.8",
+ "esbuild-linux-64": "0.15.8",
+ "esbuild-linux-arm": "0.15.8",
+ "esbuild-linux-arm64": "0.15.8",
+ "esbuild-linux-mips64le": "0.15.8",
+ "esbuild-linux-ppc64le": "0.15.8",
+ "esbuild-linux-riscv64": "0.15.8",
+ "esbuild-linux-s390x": "0.15.8",
+ "esbuild-netbsd-64": "0.15.8",
+ "esbuild-openbsd-64": "0.15.8",
+ "esbuild-sunos-64": "0.15.8",
+ "esbuild-windows-32": "0.15.8",
+ "esbuild-windows-64": "0.15.8",
+ "esbuild-windows-arm64": "0.15.8"
+ }
+ },
+ "node_modules/esbuild-android-64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.8.tgz",
+ "integrity": "sha512-bVh8FIKOolF7/d4AMzt7xHlL0Ljr+mYKSHI39TJWDkybVWHdn6+4ODL3xZGHOxPpdRpitemXA1WwMKYBsw8dGw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "dependencies": {
+ "esbuild-wasm": "0.15.8"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-android-arm64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.8.tgz",
+ "integrity": "sha512-ReAMDAHuo0H1h9LxRabI6gwYPn8k6WiUeyxuMvx17yTrJO+SCnIfNc/TSPFvDwtK9MiyiKG/2dBYHouT/M0BXQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-darwin-64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.8.tgz",
+ "integrity": "sha512-KaKcGfJ+yto7Fo5gAj3xwxHMd1fBIKatpCHK8znTJLVv+9+NN2/tIPBqA4w5rBwjX0UqXDeIE2v1xJP+nGEXgA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-darwin-arm64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.8.tgz",
+ "integrity": "sha512-8tjEaBgAKnXCkP7bhEJmEqdG9HEV6oLkF36BrMzpfW2rgaw0c48Zrxe+9RlfeGvs6gDF4w+agXyTjikzsS3izw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-freebsd-64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.8.tgz",
+ "integrity": "sha512-jaxcsGHYzn2L0/lffON2WfH4Nc+d/EwozVTP5K2v016zxMb5UQMhLoJzvLgBqHT1SG0B/mO+a+THnJCMVg15zw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-freebsd-arm64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.8.tgz",
+ "integrity": "sha512-2xp2UlljMvX8HExtcg7VHaeQk8OBU0CSl1j18B5CcZmSDkLF9p3utuMXIopG3a08fr9Hv+Dz6+seSXUow/G51w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-32": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.8.tgz",
+ "integrity": "sha512-9u1E54BRz1FQMl86iaHK146+4ID2KYNxL3trLZT4QLLx3M7Q9n4lGG3lrzqUatGR2cKy8c33b0iaCzsItZWkFg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.8.tgz",
+ "integrity": "sha512-4HxrsN9eUzJXdVGMTYA5Xler82FuZUu21bXKN42zcLHHNKCAMPUzD62I+GwDhsdgUBAUj0tRXDdsQHgaP6v0HA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-arm": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.8.tgz",
+ "integrity": "sha512-7DVBU9SFjX4+vBwt8tHsUCbE6Vvl6y6FQWHAgyw1lybC5gULqn/WnjHYHN2/LJaZRsDBvxWT4msEgwLGq1Wd3Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-arm64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.8.tgz",
+ "integrity": "sha512-1OCm7Aq0tEJT70PbxmHSGYDLYP8DKH8r4Nk7/XbVzWaduo9beCjGBB+tGZIHK6DdTQ3h00/4Tb/70YMH/bOtKg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-mips64le": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.8.tgz",
+ "integrity": "sha512-yeFoNPVFPEzZvFYBfUQNG2TjGRaCyV1E27OcOg4LOtnGrxb2wA+mkW3luckyv1CEyd00mpAg7UdHx8nlx3ghgA==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-ppc64le": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.8.tgz",
+ "integrity": "sha512-CEyMMUUNabXibw8OSNmBXhOIGhnjNVl5Lpseiuf00iKN0V47oqDrbo4dsHz1wH62m49AR8iG8wpDlTqfYgKbtg==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-riscv64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.8.tgz",
+ "integrity": "sha512-OCGSOaspMUjexSCU8ZiA0UnV/NiRU+s2vIfEcAQWQ6u32R+2luyfh/4ZaY6jFbylJE07Esc/yRvb9Q5fXuClXA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-s390x": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.8.tgz",
+ "integrity": "sha512-RHdpdfxRTSrZXZJlFSLazFU4YwXLB5Rgf6Zr5rffqSsO4y9JybgtKO38bFwxZNlDXliYISXN/YROKrG9s7mZQA==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-netbsd-64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.8.tgz",
+ "integrity": "sha512-VolFFRatBH09T5QMWhiohAWCOien1R1Uz9K0BRVVTBgBaVBt7eArsXTKxVhUgRf2vwu2c2SXkuP0r7HLG0eozw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-openbsd-64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.8.tgz",
+ "integrity": "sha512-HTAPlg+n4kUeE/isQxlCfsOz0xJGNoT5LJ9oYZWFKABfVf4Ycu7Zlf5ITgOnrdheTkz8JeL/gISIOCFAoOXrSA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-sunos-64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.8.tgz",
+ "integrity": "sha512-qMP/jR/FzcIOwKj+W+Lb+8Cfr8GZHbHUJxAPi7DUhNZMQ/6y7sOgRzlOSpRrbbUntrRZh0MqOyDhJ3Gpo6L1QA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-wasm": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.15.8.tgz",
+ "integrity": "sha512-Y7uCl5RNO4URjlemjdx++ukVHEMt5s5AfMWYUnMiK4Sry+pPCvQIctzXq6r6FKCyGKjX6/NGMCqR2OX6aLxj0w==",
+ "dev": true,
+ "optional": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-32": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.8.tgz",
+ "integrity": "sha512-RKR1QHh4iWzjUhkP8Yqi75PPz/KS+b8zw3wUrzw6oAkj+iU5Qtyj61ZDaSG3Qf2vc6hTIUiPqVTqBH0NpXFNwg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.8.tgz",
+ "integrity": "sha512-ag9ptYrsizgsR+PQE8QKeMqnosLvAMonQREpLw4evA4FFgOBMLEat/dY/9txbpozTw9eEOYyD3a4cE9yTu20FA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-arm64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.8.tgz",
+ "integrity": "sha512-dbpAb0VyPaUs9mgw65KRfQ9rqiWCHpNzrJusoPu+LpEoswosjt/tFxN7cd2l68AT4qWdBkzAjDLRon7uqMeWcg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -3794,19 +4233,6 @@
"node": ">=0.8.0"
}
},
- "node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true,
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
@@ -4093,23 +4519,6 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
- "node_modules/find-cache-dir": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
- "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
- "dev": true,
- "dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
- }
- },
"node_modules/find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
@@ -4219,26 +4628,6 @@
"integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
"dev": true
},
- "node_modules/fromentries": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
- "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
"node_modules/fs-access": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz",
@@ -4313,15 +4702,6 @@
"wide-align": "^1.1.0"
}
},
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -4339,15 +4719,6 @@
"node": "*"
}
},
- "node_modules/get-package-type": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
- "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
- "dev": true,
- "engines": {
- "node": ">=8.0.0"
- }
- },
"node_modules/get-stream": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
@@ -4403,15 +4774,6 @@
"node": ">= 6"
}
},
- "node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/google-closure-compiler-java": {
"version": "20200224.0.0",
"resolved": "https://registry.npmjs.org/google-closure-compiler-java/-/google-closure-compiler-java-20200224.0.0.tgz",
@@ -4494,34 +4856,6 @@
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
"devOptional": true
},
- "node_modules/hasha": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz",
- "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==",
- "dev": true,
- "dependencies": {
- "is-stream": "^2.0.0",
- "type-fest": "^0.8.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/hasha/node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/he": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
@@ -4641,26 +4975,7 @@
"node_modules/immediate": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
- "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=",
- "dev": true
- },
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true,
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
+ "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
},
"node_modules/inflight": {
"version": "1.0.6",
@@ -4779,7 +5094,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
- "devOptional": true
+ "optional": true
},
"node_modules/is-unicode-supported": {
"version": "0.1.0",
@@ -4793,15 +5108,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/is-windows": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/is-wsl": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
@@ -4850,59 +5156,6 @@
"node": ">=8"
}
},
- "node_modules/istanbul-lib-hook": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz",
- "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==",
- "dev": true,
- "dependencies": {
- "append-transform": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-instrument": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
- "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.7.5",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-coverage": "^3.0.0",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-instrument/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/istanbul-lib-processinfo": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz",
- "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==",
- "dev": true,
- "dependencies": {
- "archy": "^1.0.0",
- "cross-spawn": "^7.0.3",
- "istanbul-lib-coverage": "^3.2.0",
- "p-map": "^3.0.0",
- "rimraf": "^3.0.0",
- "uuid": "^8.3.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/istanbul-lib-report": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
@@ -4917,20 +5170,6 @@
"node": ">=8"
}
},
- "node_modules/istanbul-lib-source-maps": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
- "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
- "dev": true,
- "dependencies": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0",
- "source-map": "^0.6.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/istanbul-reports": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
@@ -4944,12 +5183,6 @@
"node": ">=8"
}
},
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
"node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
@@ -4968,18 +5201,6 @@
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
"optional": true
},
- "node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/json-buffer": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
@@ -5003,18 +5224,6 @@
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
"optional": true
},
- "node_modules/json5": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
- "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
- "dev": true,
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
@@ -5046,7 +5255,6 @@
"version": "3.9.1",
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.9.1.tgz",
"integrity": "sha512-H9A60xPqJ1CuC4Ka6qxzXZeU8aNmgOeP5IFqwJbQQwtu2EUYxota3LdsiZWplF7Wgd9tkAd0mdu36nceSaPuYw==",
- "dev": true,
"dependencies": {
"lie": "~3.3.0",
"pako": "~1.0.2",
@@ -5374,7 +5582,6 @@
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
"integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
- "dev": true,
"dependencies": {
"immediate": "~3.0.5"
}
@@ -5414,12 +5621,6 @@
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
"integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8="
},
- "node_modules/lodash.flattendeep": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
- "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
- "dev": true
- },
"node_modules/lodash.get": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
@@ -6156,24 +6357,6 @@
"node": ">= 10.12.0"
}
},
- "node_modules/node-preload": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz",
- "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==",
- "dev": true,
- "dependencies": {
- "process-on-spawn": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
- "dev": true
- },
"node_modules/node-windows-trayicon": {
"name": "windows-trayicon",
"version": "3.0.0",
@@ -6308,209 +6491,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/nyc": {
- "version": "15.1.0",
- "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz",
- "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==",
- "dev": true,
- "dependencies": {
- "@istanbuljs/load-nyc-config": "^1.0.0",
- "@istanbuljs/schema": "^0.1.2",
- "caching-transform": "^4.0.0",
- "convert-source-map": "^1.7.0",
- "decamelize": "^1.2.0",
- "find-cache-dir": "^3.2.0",
- "find-up": "^4.1.0",
- "foreground-child": "^2.0.0",
- "get-package-type": "^0.1.0",
- "glob": "^7.1.6",
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-hook": "^3.0.0",
- "istanbul-lib-instrument": "^4.0.0",
- "istanbul-lib-processinfo": "^2.0.2",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^4.0.0",
- "istanbul-reports": "^3.0.2",
- "make-dir": "^3.0.0",
- "node-preload": "^0.2.1",
- "p-map": "^3.0.0",
- "process-on-spawn": "^1.0.0",
- "resolve-from": "^5.0.0",
- "rimraf": "^3.0.0",
- "signal-exit": "^3.0.2",
- "spawn-wrap": "^2.0.0",
- "test-exclude": "^6.0.0",
- "yargs": "^15.0.2"
- },
- "bin": {
- "nyc": "bin/nyc.js"
- },
- "engines": {
- "node": ">=8.9"
- }
- },
- "node_modules/nyc/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nyc/node_modules/cliui": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
- "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^6.2.0"
- }
- },
- "node_modules/nyc/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nyc/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nyc/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nyc/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/nyc/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nyc/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nyc/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nyc/node_modules/wrap-ansi": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
- "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nyc/node_modules/y18n": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
- "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
- "dev": true
- },
- "node_modules/nyc/node_modules/yargs": {
- "version": "15.4.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
- "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
- "dev": true,
- "dependencies": {
- "cliui": "^6.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^4.1.0",
- "get-caller-file": "^2.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^4.2.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^18.1.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nyc/node_modules/yargs-parser": {
- "version": "18.1.3",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
- "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
- "dev": true,
- "dependencies": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/oauth-sign": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
@@ -6626,18 +6606,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/p-map": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
- "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
- "dev": true,
- "dependencies": {
- "aggregate-error": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
@@ -6646,26 +6614,10 @@
"node": ">=6"
}
},
- "node_modules/package-hash": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz",
- "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.15",
- "hasha": "^5.0.0",
- "lodash.flattendeep": "^4.4.0",
- "release-zalgo": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/pako": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
- "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
- "dev": true
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
},
"node_modules/parseurl": {
"version": "1.3.3",
@@ -6735,12 +6687,6 @@
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
"optional": true
},
- "node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "dev": true
- },
"node_modules/picomatch": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
@@ -6753,87 +6699,11 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
- "dependencies": {
- "find-up": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pkg-dir/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
- "node_modules/process-on-spawn": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz",
- "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==",
- "dev": true,
- "dependencies": {
- "fromentries": "^1.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/progress": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
@@ -7002,18 +6872,6 @@
"node": ">=8.10.0"
}
},
- "node_modules/release-zalgo": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
- "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==",
- "dev": true,
- "dependencies": {
- "es6-error": "^4.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/request": {
"version": "2.88.2",
"resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
@@ -7110,15 +6968,6 @@
"resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
"integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="
},
- "node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/responselike": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz",
@@ -7280,7 +7129,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
"integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -7434,23 +7282,6 @@
"source-map": "^0.6.0"
}
},
- "node_modules/spawn-wrap": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz",
- "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==",
- "dev": true,
- "dependencies": {
- "foreground-child": "^2.0.0",
- "is-windows": "^1.0.2",
- "make-dir": "^3.0.0",
- "rimraf": "^3.0.0",
- "signal-exit": "^3.0.2",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/split": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
@@ -7463,12 +7294,6 @@
"node": "*"
}
},
- "node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
- },
"node_modules/sshpk": {
"version": "1.17.0",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
@@ -7608,15 +7433,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/strip-eof": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
@@ -7743,15 +7559,6 @@
"node": ">=8.17.0"
}
},
- "node_modules/to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -7908,15 +7715,6 @@
"node": ">=4"
}
},
- "node_modules/type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
@@ -7934,19 +7732,10 @@
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
- "node_modules/typedarray-to-buffer": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
- "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
- "dev": true,
- "dependencies": {
- "is-typedarray": "^1.0.0"
- }
- },
"node_modules/typescript": {
- "version": "4.6.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
- "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
+ "version": "4.8.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz",
+ "integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -8011,32 +7800,6 @@
"node": ">=8"
}
},
- "node_modules/update-browserslist-db": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz",
- "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- }
- ],
- "dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- },
- "bin": {
- "browserslist-lint": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
"node_modules/uri-js": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
@@ -8072,6 +7835,30 @@
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
"dev": true
},
+ "node_modules/v8-to-istanbul": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz",
+ "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.12",
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^1.6.0"
+ },
+ "engines": {
+ "node": ">=10.12.0"
+ }
+ },
+ "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz",
+ "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+ },
"node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
@@ -8238,18 +8025,6 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
- "node_modules/write-file-atomic": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
- "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
- "dev": true,
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "is-typedarray": "^1.0.0",
- "signal-exit": "^3.0.2",
- "typedarray-to-buffer": "^3.1.5"
- }
- },
"node_modules/ws": {
"version": "8.5.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
@@ -8764,417 +8539,47 @@
"tunnel": "^0.0.6"
}
},
- "@ampproject/remapping": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
- "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
- "dev": true,
- "requires": {
- "@jridgewell/gen-mapping": "^0.1.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- },
- "@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.18.6"
- }
- },
- "@babel/compat-data": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.0.tgz",
- "integrity": "sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw==",
+ "@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"dev": true
},
- "@babel/core": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.0.tgz",
- "integrity": "sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ==",
- "dev": true,
- "requires": {
- "@ampproject/remapping": "^2.1.0",
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.19.0",
- "@babel/helper-compilation-targets": "^7.19.0",
- "@babel/helper-module-transforms": "^7.19.0",
- "@babel/helpers": "^7.19.0",
- "@babel/parser": "^7.19.0",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.0",
- "@babel/types": "^7.19.0",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.1",
- "semver": "^6.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
- }
- },
- "@babel/generator": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz",
- "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.19.0",
- "@jridgewell/gen-mapping": "^0.3.2",
- "jsesc": "^2.5.1"
- },
- "dependencies": {
- "@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
- "dev": true,
- "requires": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- }
- }
- },
- "@babel/helper-compilation-targets": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz",
- "integrity": "sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA==",
- "dev": true,
- "requires": {
- "@babel/compat-data": "^7.19.0",
- "@babel/helper-validator-option": "^7.18.6",
- "browserslist": "^4.20.2",
- "semver": "^6.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
- }
- },
- "@babel/helper-environment-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
- "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
- "dev": true
- },
- "@babel/helper-function-name": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
- "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
- "dev": true,
- "requires": {
- "@babel/template": "^7.18.10",
- "@babel/types": "^7.19.0"
- }
- },
- "@babel/helper-hoist-variables": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
- "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-module-imports": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
- "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-module-transforms": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz",
- "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==",
- "dev": true,
- "requires": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-simple-access": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/helper-validator-identifier": "^7.18.6",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.0",
- "@babel/types": "^7.19.0"
- }
- },
- "@babel/helper-simple-access": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz",
- "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-split-export-declaration": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
- "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-string-parser": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz",
- "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==",
- "dev": true
- },
- "@babel/helper-validator-identifier": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
- "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
- "dev": true
- },
- "@babel/helper-validator-option": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
- "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
- "dev": true
- },
- "@babel/helpers": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz",
- "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==",
- "dev": true,
- "requires": {
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.0",
- "@babel/types": "^7.19.0"
- }
- },
- "@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
- }
- },
- "@babel/parser": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.0.tgz",
- "integrity": "sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==",
- "dev": true
- },
- "@babel/template": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
- "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.18.10",
- "@babel/types": "^7.18.10"
- }
- },
- "@babel/traverse": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.0.tgz",
- "integrity": "sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.19.0",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.19.0",
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.19.0",
- "@babel/types": "^7.19.0",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- }
- },
- "@babel/types": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz",
- "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==",
- "dev": true,
- "requires": {
- "@babel/helper-string-parser": "^7.18.10",
- "@babel/helper-validator-identifier": "^7.18.6",
- "to-fast-properties": "^2.0.0"
- }
- },
"@colors/colors": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
"integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
"dev": true
},
- "@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
- "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
+ "@esbuild/android-arm": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.8.tgz",
+ "integrity": "sha512-CyEWALmn+no/lbgbAJsbuuhT8s2J19EJGHkeyAwjbFJMrj80KJ9zuYsoAvidPTU7BgBf87r/sgae8Tw0dbOc4Q==",
"dev": true,
+ "optional": true,
"requires": {
- "camelcase": "^5.3.1",
- "find-up": "^4.1.0",
- "get-package-type": "^0.1.0",
- "js-yaml": "^3.13.1",
- "resolve-from": "^5.0.0"
- },
- "dependencies": {
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "requires": {
- "sprintf-js": "~1.0.2"
- }
- },
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
- "requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- }
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- }
+ "esbuild-wasm": "0.15.8"
}
},
+ "@esbuild/linux-loong64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.8.tgz",
+ "integrity": "sha512-pE5RQsOTSERCtfZdfCT25wzo7dfhOSlhAXcsZmuvRYhendOv7djcdvtINdnDp2DAjP17WXlBB4nBO6sHLczmsg==",
+ "dev": true,
+ "optional": true
+ },
"@istanbuljs/schema": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
"integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
"dev": true
},
- "@jridgewell/gen-mapping": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
- "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
- "dev": true,
- "requires": {
- "@jridgewell/set-array": "^1.0.0",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
"@jridgewell/resolve-uri": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz",
"integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==",
"dev": true
},
- "@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
- "dev": true
- },
"@jridgewell/sourcemap-codec": {
"version": "1.4.13",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz",
@@ -9579,7 +8984,7 @@
"requires": {
"@keymanapp/keyboard-processor": "*",
"@keymanapp/keyman-version": "*",
- "@keymanapp/lexical-model-compiler": "*",
+ "@keymanapp/kmc": "*",
"@keymanapp/lexical-model-layer": "*",
"@keymanapp/models-types": "*",
"@keymanapp/resources-gosh": "*",
@@ -9623,8 +9028,95 @@
}
}
},
- "@keymanapp/ldml-keyboard-compiler": {
+ "@keymanapp/kmc": {
"version": "file:developer/src/kmc",
+ "requires": {
+ "@keymanapp/keyman-version": "*",
+ "@keymanapp/kmc-keyboard": "*",
+ "@keymanapp/kmc-model": "*",
+ "@keymanapp/kmc-model-info": "*",
+ "@keymanapp/kmc-package": "*",
+ "@keymanapp/models-types": "*",
+ "@types/chai": "^4.1.7",
+ "@types/mocha": "^5.2.7",
+ "@types/node": "^10.14.6",
+ "@types/xml2js": "^0.4.5",
+ "c8": "^7.12.0",
+ "chai": "^4.3.4",
+ "chalk": "^2.4.2",
+ "commander": "^3.0.0",
+ "esbuild": "*",
+ "mocha": "^8.4.0",
+ "ts-node": "^9.1.1",
+ "typescript": "^4.5.4"
+ },
+ "dependencies": {
+ "@types/mocha": {
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
+ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "10.17.60",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
+ "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "@keymanapp/kmc-keyboard": {
+ "version": "file:developer/src/kmc-keyboard",
"requires": {
"@keymanapp/keyman-version": "*",
"@types/chai": "^4.1.7",
@@ -9632,12 +9124,11 @@
"@types/node": "^10.14.6",
"@types/xml2js": "^0.4.5",
"ajv": "^8.11.0",
+ "c8": "^7.12.0",
"chai": "^4.3.4",
"chalk": "^2.4.2",
- "commander": "^3.0.0",
"crc-32": "^1.2.2",
"mocha": "^8.4.0",
- "nyc": "*",
"restructure": "^3.0.0",
"semver": "^7.3.7",
"ts-node": "^9.1.1",
@@ -9725,28 +9216,311 @@
}
}
},
- "@keymanapp/ldml-keyboard-constants": {
- "version": "file:core/include/ldml"
- },
- "@keymanapp/lexical-model-compiler": {
- "version": "file:developer/src/kmlmc",
+ "@keymanapp/kmc-model": {
+ "version": "file:developer/src/kmc-model",
"requires": {
"@keymanapp/keyman-version": "*",
- "@keymanapp/models-templates": "*",
"@keymanapp/models-types": "*",
- "@keymanapp/models-wordbreakers": "*",
"@types/chai": "^4.1.7",
"@types/mocha": "^5.2.7",
"@types/node": "^10.14.6",
"@types/xml2js": "^0.4.5",
+ "c8": "^7.12.0",
+ "chai": "^4.3.4",
+ "chalk": "^2.4.2",
+ "esbuild": "^0.15.7",
+ "mocha": "^10.0.0",
+ "ts-node": "^9.1.1",
+ "typescript": "^4.8.3"
+ },
+ "dependencies": {
+ "@types/mocha": {
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
+ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "10.17.60",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
+ "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "mocha": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz",
+ "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==",
+ "dev": true,
+ "requires": {
+ "@ungap/promise-all-settled": "1.1.2",
+ "ansi-colors": "4.1.1",
+ "browser-stdout": "1.3.1",
+ "chokidar": "3.5.3",
+ "debug": "4.3.4",
+ "diff": "5.0.0",
+ "escape-string-regexp": "4.0.0",
+ "find-up": "5.0.0",
+ "glob": "7.2.0",
+ "he": "1.2.0",
+ "js-yaml": "4.1.0",
+ "log-symbols": "4.1.0",
+ "minimatch": "5.0.1",
+ "ms": "2.1.3",
+ "nanoid": "3.3.3",
+ "serialize-javascript": "6.0.0",
+ "strip-json-comments": "3.1.1",
+ "supports-color": "8.1.1",
+ "workerpool": "6.2.1",
+ "yargs": "16.2.0",
+ "yargs-parser": "20.2.4",
+ "yargs-unparser": "2.0.0"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
+ "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "nanoid": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
+ "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
+ "dev": true
+ },
+ "readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "serialize-javascript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
+ "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+ "dev": true,
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "workerpool": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
+ "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==",
+ "dev": true
+ }
+ }
+ },
+ "@keymanapp/kmc-model-info": {
+ "version": "file:developer/src/kmc-model-info",
+ "requires": {
+ "@keymanapp/keyman-version": "*",
+ "@keymanapp/kmc-package": "*",
+ "@keymanapp/models-types": "*",
+ "@types/chai": "^4.1.7",
+ "@types/mocha": "^5.2.7",
+ "@types/node": "^10.14.6",
+ "@types/xml2js": "^0.4.5",
+ "c8": "^7.12.0",
"chai": "^4.3.4",
"chalk": "^2.4.2",
- "commander": "^3.0.0",
- "jszip": "^3.7.0",
"mocha": "^8.4.0",
"ts-node": "^9.1.1",
- "typescript": "^4.5.4",
- "xml2js": "^0.4.19"
+ "typescript": "^4.5.4"
},
"dependencies": {
"@types/mocha": {
@@ -9813,6 +9587,88 @@
}
}
},
+ "@keymanapp/kmc-package": {
+ "version": "file:developer/src/kmc-package",
+ "requires": {
+ "@types/chai": "^4.1.7",
+ "@types/mocha": "^5.2.7",
+ "@types/node": "^10.14.6",
+ "c8": "^7.12.0",
+ "chai": "^4.3.4",
+ "chalk": "^2.4.2",
+ "jszip": "^3.7.0",
+ "mocha": "^8.4.0",
+ "ts-node": "^9.1.1",
+ "typescript": "^4.5.4"
+ },
+ "dependencies": {
+ "@types/mocha": {
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
+ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "10.17.60",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
+ "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "@keymanapp/ldml-keyboard-constants": {
+ "version": "file:core/include/ldml"
+ },
"@keymanapp/lexical-model-layer": {
"version": "file:common/predictive-text",
"requires": {
@@ -10551,6 +10407,12 @@
"resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
"integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ=="
},
+ "@types/istanbul-lib-coverage": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
+ "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
+ "dev": true
+ },
"@types/json-buffer": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz",
@@ -10700,16 +10562,6 @@
"debug": "4"
}
},
- "aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "dev": true,
- "requires": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
- }
- },
"ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -10757,27 +10609,12 @@
"resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
"integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY="
},
- "append-transform": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz",
- "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==",
- "dev": true,
- "requires": {
- "default-require-extensions": "^3.0.0"
- }
- },
"aproba": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
"devOptional": true
},
- "archy": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
- "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==",
- "dev": true
- },
"are-we-there-yet": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
@@ -10953,18 +10790,6 @@
"integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
"dev": true
},
- "browserslist": {
- "version": "4.21.3",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz",
- "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==",
- "dev": true,
- "requires": {
- "caniuse-lite": "^1.0.30001370",
- "electron-to-chromium": "^1.4.202",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.5"
- }
- },
"browserstack": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.3.tgz",
@@ -11086,6 +10911,34 @@
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
},
+ "c8": {
+ "version": "7.12.0",
+ "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz",
+ "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==",
+ "dev": true,
+ "requires": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@istanbuljs/schema": "^0.1.3",
+ "find-up": "^5.0.0",
+ "foreground-child": "^2.0.0",
+ "istanbul-lib-coverage": "^3.2.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-reports": "^3.1.4",
+ "rimraf": "^3.0.2",
+ "test-exclude": "^6.0.0",
+ "v8-to-istanbul": "^9.0.0",
+ "yargs": "^16.2.0",
+ "yargs-parser": "^20.2.9"
+ },
+ "dependencies": {
+ "yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "dev": true
+ }
+ }
+ },
"cacheable-lookup": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
@@ -11105,29 +10958,11 @@
"responselike": "^2.0.0"
}
},
- "caching-transform": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz",
- "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==",
- "dev": true,
- "requires": {
- "hasha": "^5.0.0",
- "make-dir": "^3.0.0",
- "package-hash": "^4.0.0",
- "write-file-atomic": "^3.0.0"
- }
- },
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
},
- "caniuse-lite": {
- "version": "1.0.30001390",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001390.tgz",
- "integrity": "sha512-sS4CaUM+/+vqQUlCvCJ2WtDlV81aWtHhqeEVkLokVJJa3ViN4zDxAGfq9R8i1m90uGHxo99cy10Od+lvn3hf0g==",
- "dev": true
- },
"caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
@@ -11185,12 +11020,6 @@
"integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
"optional": true
},
- "clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "dev": true
- },
"cliui": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
@@ -11283,12 +11112,6 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
"integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow=="
},
- "commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true
- },
"component-emitter": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
@@ -11514,15 +11337,6 @@
"type-detect": "^4.0.0"
}
},
- "default-require-extensions": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz",
- "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==",
- "dev": true,
- "requires": {
- "strip-bom": "^4.0.0"
- }
- },
"defer-to-connect": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
@@ -11652,12 +11466,6 @@
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
- "electron-to-chromium": {
- "version": "1.4.242",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.242.tgz",
- "integrity": "sha512-nPdgMWtjjWGCtreW/2adkrB2jyHjClo9PtVhR6rW+oxa4E4Wom642Tn+5LslHP3XPL5MCpkn5/UEY60EXylNeQ==",
- "dev": true
- },
"emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -11730,12 +11538,6 @@
"integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
"optional": true
},
- "es6-error": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
- "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
- "dev": true
- },
"es6-promise": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
@@ -11756,6 +11558,186 @@
"resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.6.tgz",
"integrity": "sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA=="
},
+ "esbuild": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.8.tgz",
+ "integrity": "sha512-Remsk2dmr1Ia65sU+QasE6svJbsHe62lzR+CnjpUvbZ+uSYo1SitiOWPRfZQkCu82YWZBBKXiD/j0i//XWMZ+Q==",
+ "dev": true,
+ "requires": {
+ "@esbuild/android-arm": "0.15.8",
+ "@esbuild/linux-loong64": "0.15.8",
+ "esbuild-android-64": "0.15.8",
+ "esbuild-android-arm64": "0.15.8",
+ "esbuild-darwin-64": "0.15.8",
+ "esbuild-darwin-arm64": "0.15.8",
+ "esbuild-freebsd-64": "0.15.8",
+ "esbuild-freebsd-arm64": "0.15.8",
+ "esbuild-linux-32": "0.15.8",
+ "esbuild-linux-64": "0.15.8",
+ "esbuild-linux-arm": "0.15.8",
+ "esbuild-linux-arm64": "0.15.8",
+ "esbuild-linux-mips64le": "0.15.8",
+ "esbuild-linux-ppc64le": "0.15.8",
+ "esbuild-linux-riscv64": "0.15.8",
+ "esbuild-linux-s390x": "0.15.8",
+ "esbuild-netbsd-64": "0.15.8",
+ "esbuild-openbsd-64": "0.15.8",
+ "esbuild-sunos-64": "0.15.8",
+ "esbuild-windows-32": "0.15.8",
+ "esbuild-windows-64": "0.15.8",
+ "esbuild-windows-arm64": "0.15.8"
+ }
+ },
+ "esbuild-android-64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.8.tgz",
+ "integrity": "sha512-bVh8FIKOolF7/d4AMzt7xHlL0Ljr+mYKSHI39TJWDkybVWHdn6+4ODL3xZGHOxPpdRpitemXA1WwMKYBsw8dGw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "esbuild-wasm": "0.15.8"
+ }
+ },
+ "esbuild-android-arm64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.8.tgz",
+ "integrity": "sha512-ReAMDAHuo0H1h9LxRabI6gwYPn8k6WiUeyxuMvx17yTrJO+SCnIfNc/TSPFvDwtK9MiyiKG/2dBYHouT/M0BXQ==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-darwin-64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.8.tgz",
+ "integrity": "sha512-KaKcGfJ+yto7Fo5gAj3xwxHMd1fBIKatpCHK8znTJLVv+9+NN2/tIPBqA4w5rBwjX0UqXDeIE2v1xJP+nGEXgA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-darwin-arm64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.8.tgz",
+ "integrity": "sha512-8tjEaBgAKnXCkP7bhEJmEqdG9HEV6oLkF36BrMzpfW2rgaw0c48Zrxe+9RlfeGvs6gDF4w+agXyTjikzsS3izw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-freebsd-64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.8.tgz",
+ "integrity": "sha512-jaxcsGHYzn2L0/lffON2WfH4Nc+d/EwozVTP5K2v016zxMb5UQMhLoJzvLgBqHT1SG0B/mO+a+THnJCMVg15zw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-freebsd-arm64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.8.tgz",
+ "integrity": "sha512-2xp2UlljMvX8HExtcg7VHaeQk8OBU0CSl1j18B5CcZmSDkLF9p3utuMXIopG3a08fr9Hv+Dz6+seSXUow/G51w==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-32": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.8.tgz",
+ "integrity": "sha512-9u1E54BRz1FQMl86iaHK146+4ID2KYNxL3trLZT4QLLx3M7Q9n4lGG3lrzqUatGR2cKy8c33b0iaCzsItZWkFg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.8.tgz",
+ "integrity": "sha512-4HxrsN9eUzJXdVGMTYA5Xler82FuZUu21bXKN42zcLHHNKCAMPUzD62I+GwDhsdgUBAUj0tRXDdsQHgaP6v0HA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-arm": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.8.tgz",
+ "integrity": "sha512-7DVBU9SFjX4+vBwt8tHsUCbE6Vvl6y6FQWHAgyw1lybC5gULqn/WnjHYHN2/LJaZRsDBvxWT4msEgwLGq1Wd3Q==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-arm64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.8.tgz",
+ "integrity": "sha512-1OCm7Aq0tEJT70PbxmHSGYDLYP8DKH8r4Nk7/XbVzWaduo9beCjGBB+tGZIHK6DdTQ3h00/4Tb/70YMH/bOtKg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-mips64le": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.8.tgz",
+ "integrity": "sha512-yeFoNPVFPEzZvFYBfUQNG2TjGRaCyV1E27OcOg4LOtnGrxb2wA+mkW3luckyv1CEyd00mpAg7UdHx8nlx3ghgA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-ppc64le": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.8.tgz",
+ "integrity": "sha512-CEyMMUUNabXibw8OSNmBXhOIGhnjNVl5Lpseiuf00iKN0V47oqDrbo4dsHz1wH62m49AR8iG8wpDlTqfYgKbtg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-riscv64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.8.tgz",
+ "integrity": "sha512-OCGSOaspMUjexSCU8ZiA0UnV/NiRU+s2vIfEcAQWQ6u32R+2luyfh/4ZaY6jFbylJE07Esc/yRvb9Q5fXuClXA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-s390x": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.8.tgz",
+ "integrity": "sha512-RHdpdfxRTSrZXZJlFSLazFU4YwXLB5Rgf6Zr5rffqSsO4y9JybgtKO38bFwxZNlDXliYISXN/YROKrG9s7mZQA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-netbsd-64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.8.tgz",
+ "integrity": "sha512-VolFFRatBH09T5QMWhiohAWCOien1R1Uz9K0BRVVTBgBaVBt7eArsXTKxVhUgRf2vwu2c2SXkuP0r7HLG0eozw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-openbsd-64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.8.tgz",
+ "integrity": "sha512-HTAPlg+n4kUeE/isQxlCfsOz0xJGNoT5LJ9oYZWFKABfVf4Ycu7Zlf5ITgOnrdheTkz8JeL/gISIOCFAoOXrSA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-sunos-64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.8.tgz",
+ "integrity": "sha512-qMP/jR/FzcIOwKj+W+Lb+8Cfr8GZHbHUJxAPi7DUhNZMQ/6y7sOgRzlOSpRrbbUntrRZh0MqOyDhJ3Gpo6L1QA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-wasm": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.15.8.tgz",
+ "integrity": "sha512-Y7uCl5RNO4URjlemjdx++ukVHEMt5s5AfMWYUnMiK4Sry+pPCvQIctzXq6r6FKCyGKjX6/NGMCqR2OX6aLxj0w==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-windows-32": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.8.tgz",
+ "integrity": "sha512-RKR1QHh4iWzjUhkP8Yqi75PPz/KS+b8zw3wUrzw6oAkj+iU5Qtyj61ZDaSG3Qf2vc6hTIUiPqVTqBH0NpXFNwg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-windows-64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.8.tgz",
+ "integrity": "sha512-ag9ptYrsizgsR+PQE8QKeMqnosLvAMonQREpLw4evA4FFgOBMLEat/dY/9txbpozTw9eEOYyD3a4cE9yTu20FA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-windows-arm64": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.8.tgz",
+ "integrity": "sha512-dbpAb0VyPaUs9mgw65KRfQ9rqiWCHpNzrJusoPu+LpEoswosjt/tFxN7cd2l68AT4qWdBkzAjDLRon7uqMeWcg==",
+ "dev": true,
+ "optional": true
+ },
"escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -11773,12 +11755,6 @@
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
},
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true
- },
"esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
@@ -12021,17 +11997,6 @@
}
}
},
- "find-cache-dir": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
- "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
- "dev": true,
- "requires": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
- }
- },
"find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
@@ -12103,12 +12068,6 @@
"integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
"dev": true
},
- "fromentries": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
- "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
- "dev": true
- },
"fs-access": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz",
@@ -12167,12 +12126,6 @@
"wide-align": "^1.1.0"
}
},
- "gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true
- },
"get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -12184,12 +12137,6 @@
"integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
"dev": true
},
- "get-package-type": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
- "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
- "dev": true
- },
"get-stream": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
@@ -12230,12 +12177,6 @@
"is-glob": "^4.0.1"
}
},
- "globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true
- },
"google-closure-compiler-java": {
"version": "20200224.0.0",
"resolved": "https://registry.npmjs.org/google-closure-compiler-java/-/google-closure-compiler-java-20200224.0.0.tgz",
@@ -12299,24 +12240,6 @@
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
"devOptional": true
},
- "hasha": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz",
- "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==",
- "dev": true,
- "requires": {
- "is-stream": "^2.0.0",
- "type-fest": "^0.8.0"
- },
- "dependencies": {
- "is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dev": true
- }
- }
- },
"he": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
@@ -12408,20 +12331,7 @@
"immediate": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
- "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=",
- "dev": true
- },
- "imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true
- },
- "indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true
+ "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
},
"inflight": {
"version": "1.0.6",
@@ -12507,7 +12417,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
- "devOptional": true
+ "optional": true
},
"is-unicode-supported": {
"version": "0.1.0",
@@ -12515,12 +12425,6 @@
"integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
"dev": true
},
- "is-windows": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
- "dev": true
- },
"is-wsl": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
@@ -12557,49 +12461,6 @@
"integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
"dev": true
},
- "istanbul-lib-hook": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz",
- "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==",
- "dev": true,
- "requires": {
- "append-transform": "^2.0.0"
- }
- },
- "istanbul-lib-instrument": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
- "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
- "dev": true,
- "requires": {
- "@babel/core": "^7.7.5",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-coverage": "^3.0.0",
- "semver": "^6.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
- }
- },
- "istanbul-lib-processinfo": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz",
- "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==",
- "dev": true,
- "requires": {
- "archy": "^1.0.0",
- "cross-spawn": "^7.0.3",
- "istanbul-lib-coverage": "^3.2.0",
- "p-map": "^3.0.0",
- "rimraf": "^3.0.0",
- "uuid": "^8.3.2"
- }
- },
"istanbul-lib-report": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
@@ -12611,17 +12472,6 @@
"supports-color": "^7.1.0"
}
},
- "istanbul-lib-source-maps": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
- "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
- "dev": true,
- "requires": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0",
- "source-map": "^0.6.1"
- }
- },
"istanbul-reports": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
@@ -12632,12 +12482,6 @@
"istanbul-lib-report": "^3.0.0"
}
},
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
"js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
@@ -12653,12 +12497,6 @@
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
"optional": true
},
- "jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true
- },
"json-buffer": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
@@ -12682,12 +12520,6 @@
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
"optional": true
},
- "json5": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
- "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
- "dev": true
- },
"jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
@@ -12714,7 +12546,6 @@
"version": "3.9.1",
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.9.1.tgz",
"integrity": "sha512-H9A60xPqJ1CuC4Ka6qxzXZeU8aNmgOeP5IFqwJbQQwtu2EUYxota3LdsiZWplF7Wgd9tkAd0mdu36nceSaPuYw==",
- "dev": true,
"requires": {
"lie": "~3.3.0",
"pako": "~1.0.2",
@@ -13021,7 +12852,6 @@
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
"integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
- "dev": true,
"requires": {
"immediate": "~3.0.5"
}
@@ -13055,12 +12885,6 @@
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
"integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8="
},
- "lodash.flattendeep": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
- "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
- "dev": true
- },
"lodash.get": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
@@ -13624,21 +13448,6 @@
"which": "^2.0.2"
}
},
- "node-preload": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz",
- "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==",
- "dev": true,
- "requires": {
- "process-on-spawn": "^1.0.0"
- }
- },
- "node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
- "dev": true
- },
"node-windows-trayicon": {
"version": "git+ssh://git@github.com/keymanapp/node-windows-trayicon.git#1e46786082213f3edcddd5953e33f5abdc7ea05f",
"from": "node-windows-trayicon@git+ssh://git@github.com/keymanapp/node-windows-trayicon.git#1e46786082213f3edcddd5953e33f5abdc7ea05f",
@@ -13744,169 +13553,6 @@
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
"devOptional": true
},
- "nyc": {
- "version": "15.1.0",
- "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz",
- "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==",
- "dev": true,
- "requires": {
- "@istanbuljs/load-nyc-config": "^1.0.0",
- "@istanbuljs/schema": "^0.1.2",
- "caching-transform": "^4.0.0",
- "convert-source-map": "^1.7.0",
- "decamelize": "^1.2.0",
- "find-cache-dir": "^3.2.0",
- "find-up": "^4.1.0",
- "foreground-child": "^2.0.0",
- "get-package-type": "^0.1.0",
- "glob": "^7.1.6",
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-hook": "^3.0.0",
- "istanbul-lib-instrument": "^4.0.0",
- "istanbul-lib-processinfo": "^2.0.2",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^4.0.0",
- "istanbul-reports": "^3.0.2",
- "make-dir": "^3.0.0",
- "node-preload": "^0.2.1",
- "p-map": "^3.0.0",
- "process-on-spawn": "^1.0.0",
- "resolve-from": "^5.0.0",
- "rimraf": "^3.0.0",
- "signal-exit": "^3.0.2",
- "spawn-wrap": "^2.0.0",
- "test-exclude": "^6.0.0",
- "yargs": "^15.0.2"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true
- },
- "cliui": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
- "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
- "dev": true,
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^6.2.0"
- }
- },
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- },
- "strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "wrap-ansi": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
- "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "y18n": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
- "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
- "dev": true
- },
- "yargs": {
- "version": "15.4.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
- "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
- "dev": true,
- "requires": {
- "cliui": "^6.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^4.1.0",
- "get-caller-file": "^2.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^4.2.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^18.1.2"
- }
- },
- "yargs-parser": {
- "version": "18.1.3",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
- "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
- "dev": true,
- "requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
- }
- }
- },
"oauth-sign": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
@@ -13986,37 +13632,15 @@
"p-limit": "^3.0.2"
}
},
- "p-map": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
- "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
- "dev": true,
- "requires": {
- "aggregate-error": "^3.0.0"
- }
- },
"p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
},
- "package-hash": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz",
- "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.15",
- "hasha": "^5.0.0",
- "lodash.flattendeep": "^4.4.0",
- "release-zalgo": "^1.0.0"
- }
- },
"pako": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
- "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
- "dev": true
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
},
"parseurl": {
"version": "1.3.3",
@@ -14071,80 +13695,17 @@
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
"optional": true
},
- "picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "dev": true
- },
"picomatch": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
"integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
"dev": true
},
- "pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
- "requires": {
- "find-up": "^4.0.0"
- },
- "dependencies": {
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- }
- }
- },
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
- "process-on-spawn": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz",
- "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==",
- "dev": true,
- "requires": {
- "fromentries": "^1.2.0"
- }
- },
"progress": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
@@ -14272,15 +13833,6 @@
"picomatch": "^2.2.1"
}
},
- "release-zalgo": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
- "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==",
- "dev": true,
- "requires": {
- "es6-error": "^4.0.1"
- }
- },
"request": {
"version": "2.88.2",
"resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
@@ -14355,12 +13907,6 @@
"resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
"integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="
},
- "resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true
- },
"responselike": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz",
@@ -14487,8 +14033,7 @@
"set-immediate-shim": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
- "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
- "dev": true
+ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E="
},
"setprototypeof": {
"version": "1.2.0",
@@ -14611,20 +14156,6 @@
"source-map": "^0.6.0"
}
},
- "spawn-wrap": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz",
- "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==",
- "dev": true,
- "requires": {
- "foreground-child": "^2.0.0",
- "is-windows": "^1.0.2",
- "make-dir": "^3.0.0",
- "rimraf": "^3.0.0",
- "signal-exit": "^3.0.2",
- "which": "^2.0.1"
- }
- },
"split": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
@@ -14634,12 +14165,6 @@
"through": "2"
}
},
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
- },
"sshpk": {
"version": "1.17.0",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
@@ -14749,12 +14274,6 @@
"ansi-regex": "^2.0.0"
}
},
- "strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "dev": true
- },
"strip-eof": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
@@ -14852,12 +14371,6 @@
"rimraf": "^3.0.0"
}
},
- "to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true
- },
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -14970,12 +14483,6 @@
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true
},
- "type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "dev": true
- },
"type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
@@ -14990,19 +14497,10 @@
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
- "typedarray-to-buffer": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
- "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
- "dev": true,
- "requires": {
- "is-typedarray": "^1.0.0"
- }
- },
"typescript": {
- "version": "4.6.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
- "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw=="
+ "version": "4.8.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz",
+ "integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig=="
},
"ua-parser-js": {
"version": "0.7.31",
@@ -15038,16 +14536,6 @@
"integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
"dev": true
},
- "update-browserslist-db": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz",
- "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==",
- "dev": true,
- "requires": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- }
- },
"uri-js": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
@@ -15077,6 +14565,29 @@
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
"dev": true
},
+ "v8-to-istanbul": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz",
+ "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/trace-mapping": "^0.3.12",
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^1.6.0"
+ },
+ "dependencies": {
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz",
+ "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+ }
+ }
+ },
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
@@ -15208,18 +14719,6 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
- "write-file-atomic": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
- "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
- "dev": true,
- "requires": {
- "imurmurhash": "^0.1.4",
- "is-typedarray": "^1.0.0",
- "signal-exit": "^3.0.2",
- "typedarray-to-buffer": "^3.1.5"
- }
- },
"ws": {
"version": "8.5.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
diff --git a/package.json b/package.json
index 73758909fe..49ed676d47 100644
--- a/package.json
+++ b/package.json
@@ -13,7 +13,10 @@
"resources/gosh",
"resources/build/version",
"core/include/ldml",
- "developer/src/kmlmc",
+ "developer/src/kmc-keyboard",
+ "developer/src/kmc-model",
+ "developer/src/kmc-model-info",
+ "developer/src/kmc-package",
"developer/src/kmc",
"developer/src/server",
"common/models/*",
@@ -23,6 +26,7 @@
"web"
],
"dependencies": {
- "@keymanapp/hextobin": "file:common/tools/hextobin"
+ "@keymanapp/hextobin": "file:common/tools/hextobin",
+ "@keymanapp/keyman-version": "file:common/web/keyman-version"
}
}
diff --git a/resources/build/build-utils.sh b/resources/build/build-utils.sh
index e18db1daa3..8afa056849 100755
--- a/resources/build/build-utils.sh
+++ b/resources/build/build-utils.sh
@@ -752,7 +752,7 @@ builder_report() {
target="$3"
fi
- if [ $result == success ]; then
+ if [[ $result == success ]]; then
echo "${COLOR_GREEN}## $action$target completed successfully${COLOR_RESET}"
else
echo "${COLOR_RED}## $action$target failed. Result: $result${COLOR_RESET}"
diff --git a/resources/build/npm-publish.inc.sh b/resources/build/npm-publish.inc.sh
new file mode 100644
index 0000000000..32f9f8d95b
--- /dev/null
+++ b/resources/build/npm-publish.inc.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+
+
+function npm_publish() {
+ if [[ $TIER == stable ]]; then
+ npm_dist_tag=latest
+ else
+ npm_dist_tag=$TIER
+ fi
+
+ set_npm_version
+
+ if builder_has_option --dry-run; then
+ DRY_RUN=--dry-run
+ else
+ DRY_RUN=
+ fi
+
+ #TEMP: we don't want to publish at this point!
+ DRY_RUN=--dry-run
+
+ # Note: In either case, npm publish MUST be given --access public to publish
+ # a package in the @keymanapp scope on the public npm package index.
+ #
+ # See `npm help publish` for more details.
+ echo "Publishing $DRY_RUN npm package with tag $npm_dist_tag"
+ npm publish $DRY_RUN --access public --tag $npm_dist_tag || fail "Could not publish $npm_dist_tag release."
+fi
diff --git a/tsconfig.json b/tsconfig.json
index 45baebc661..139dbc98b3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -8,25 +8,42 @@
{ "path": "./common/web/recorder/src/tsconfig.json" },
{ "path": "./common/web/sentry-manager/src/tsconfig.json" },
{ "path": "./common/web/utils/tsconfig.json" },
+
{ "path": "./common/models/templates/tsconfig.json" },
{ "path": "./common/models/types/tsconfig.json" },
{ "path": "./common/models/wordbreakers/tsconfig.json" },
+
{ "path": "./common/predictive-text/browser.tsconfig.json" },
{ "path": "./common/predictive-text/testing/one-stage-embedded-webworker/tsconfig.json" },
{ "path": "./common/predictive-text/testing/two-stage-embedded-webworker/tsconfig.json" },
{ "path": "./common/predictive-text/testing/two-stage-embedded-webworker/worker/tsconfig.json" },
{ "path": "./common/predictive-text/tsconfig.json" },
- { "path": "./developer/src/kmlmc/tests/tsconfig.json" },
- { "path": "./developer/src/kmlmc/tsconfig.json" },
+
+ //{ "path": "./developer/src/kmc/test/tsconfig.json" },
+ { "path": "./developer/src/kmc/tsconfig.json" },
+
+ { "path": "./developer/src/kmc-keyboard/test/tsconfig.json" },
+ { "path": "./developer/src/kmc-keyboard/tsconfig.json" },
+ { "path": "./developer/src/kmc-model/test/tsconfig.json" },
+ { "path": "./developer/src/kmc-model/tsconfig.json" },
+ //{ "path": "./developer/src/kmc-model-info/test/tsconfig.json" },
+ { "path": "./developer/src/kmc-model-info/tsconfig.json" },
+ { "path": "./developer/src/kmc-package/test/tsconfig.json" },
+ { "path": "./developer/src/kmc-package/tsconfig.json" },
+
{ "path": "./developer/src/server/tsconfig.json" },
+
{ "path": "./resources/build/version/tsconfig.json" },
{ "path": "./resources/build/version/tsconfig.production.json" },
+
{ "path": "./web/bulk_rendering/tsconfig.json" },
{ "path": "./web/source/tsconfig.json" },
{ "path": "./web/tools/recorder/tsconfig.json" },
{ "path": "./web/tools/sourcemap-root/tsconfig.json" },
+
{ "path": "./common/web/lm-message-types/" },
{ "path": "./common/web/lm-worker/" },
{ "path": "./common/web/keyman-version/" },
+ { "path": "./common/web/keyman-version/tsconfig.esm.json" },
]
}
\ No newline at end of file