Merge pull request #2150 from keymanapp/beta-alpha-p7s8
Cherry-pick beta fixes to alpha
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
/* http://meyerweb.com/eric/tools/css/reset/
|
||||
v2.0 | 20110126
|
||||
License: none (public domain)
|
||||
|
|
@ -152,7 +153,6 @@ th{
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/***********************
|
||||
Wrapper CSS
|
||||
***********************/
|
||||
|
|
@ -193,7 +193,7 @@ h2{
|
|||
color: #BA2034;
|
||||
}
|
||||
|
||||
p img, img{
|
||||
p img{
|
||||
margin-top: 10px !important;
|
||||
display: block !important;
|
||||
margin-left: auto !important;
|
||||
|
|
@ -243,13 +243,11 @@ th{
|
|||
#section2 img{
|
||||
min-width: 40px;
|
||||
}
|
||||
a{
|
||||
color: #BA2034;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
Removes existing max-width property settings from images in tables.
|
||||
They overly shrink the images on the main Android symbol glossary.
|
||||
*/
|
||||
#section2 td img {
|
||||
max-width: unset;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 351 B |
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
Before Width: | Height: | Size: 283 B After Width: | Height: | Size: 283 B |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 9 KiB After Width: | Height: | Size: 9 KiB |
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 133 B After Width: | Height: | Size: 133 B |
|
Before Width: | Height: | Size: 536 B After Width: | Height: | Size: 536 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 298 B After Width: | Height: | Size: 298 B |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 992 B After Width: | Height: | Size: 992 B |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 2 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 6 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
|
@ -190,6 +190,7 @@ final class KMKeyboard extends WebView {
|
|||
|
||||
public void loadKeyboard() {
|
||||
keyboardSet = false;
|
||||
this.javascriptAfterLoad.clear();
|
||||
|
||||
if(keyboardType == KeyboardType.KEYBOARD_TYPE_INAPP)
|
||||
KMManager.InAppKeyboardLoaded = false;
|
||||
|
|
@ -207,7 +208,9 @@ final class KMKeyboard extends WebView {
|
|||
if((keyboardType == KeyboardType.KEYBOARD_TYPE_INAPP && KMManager.InAppKeyboardLoaded) ||
|
||||
(keyboardType == KeyboardType.KEYBOARD_TYPE_SYSTEM && KMManager.SystemKeyboardLoaded)) {
|
||||
|
||||
if(this.javascriptAfterLoad.size() == 1)
|
||||
// If !this.keyboardSet, then pageLoaded hasn't fired yet.
|
||||
// When pageLoaded fires, it'll call `callJavascriptAfterLoad` safely.
|
||||
if(this.javascriptAfterLoad.size() == 1 && keyboardSet)
|
||||
callJavascriptAfterLoad();
|
||||
}
|
||||
}
|
||||
|
|
@ -221,8 +224,11 @@ final class KMKeyboard extends WebView {
|
|||
if(javascriptAfterLoad.size() > 0) {
|
||||
loadUrl("javascript:" + javascriptAfterLoad.get(0));
|
||||
javascriptAfterLoad.remove(0);
|
||||
if (javascriptAfterLoad.size() > 0) {
|
||||
callJavascriptAfterLoad();
|
||||
// Make sure we didn't reset the page in the middle of the queue!
|
||||
if(keyboardSet) {
|
||||
if (javascriptAfterLoad.size() > 0) {
|
||||
callJavascriptAfterLoad();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -286,15 +286,11 @@ public final class KMTextView extends AppCompatEditText {
|
|||
}
|
||||
|
||||
public void dismissKeyboard() {
|
||||
AppCompatActivity activity;
|
||||
if (context instanceof ContextThemeWrapper) {
|
||||
activity = (AppCompatActivity)(((ContextThemeWrapper)context).getBaseContext());
|
||||
} else {
|
||||
activity = (AppCompatActivity)context;
|
||||
}
|
||||
AppCompatActivity activity = (AppCompatActivity) context;
|
||||
|
||||
Window mainWindow = activity.getWindow();
|
||||
FrameLayout mainLayout = (FrameLayout) mainWindow.getDecorView().findViewById(android.R.id.content);
|
||||
|
||||
//mainWindow.clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
|
||||
((InputMethodManager) activity.getSystemService(AppCompatActivity.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(mainLayout.getWindowToken(), 0);
|
||||
//keyboardLayout.setAnimation(AnimationUtils.loadAnimation(context, R.anim.slide_out));
|
||||
|
|
|
|||
|
|
@ -302,7 +302,8 @@ public final class KeyboardPickerActivity extends AppCompatActivity {
|
|||
|
||||
private static void switchKeyboard(int position) {
|
||||
setSelection(position);
|
||||
HashMap<String, String> kbInfo = keyboardsList.get(position);
|
||||
int listPosition = (position >= keyboardsList.size()) ? keyboardsList.size()-1 : position;
|
||||
HashMap<String, String> kbInfo = keyboardsList.get(listPosition);
|
||||
String pkgId = kbInfo.get(KMManager.KMKey_PackageID);
|
||||
if (pkgId == null || pkgId.isEmpty()) {
|
||||
pkgId = KMManager.KMDefault_UndefinedPackageID;
|
||||
|
|
|
|||
|
|
@ -117,8 +117,7 @@ public final class LanguageListActivity extends AppCompatActivity implements OnK
|
|||
int offsetY = (v == null) ? 0 : v.getTop();
|
||||
i.putExtra("offsetY", offsetY);
|
||||
startActivityForResult(i, 1);
|
||||
} else {
|
||||
// language.keyboards.size() == 1
|
||||
} else if (language.keyboards.size() == 1) {
|
||||
Keyboard kbd = language.keyboards.iterator().next();
|
||||
String kbName = kbd.map.get(KMManager.KMKey_KeyboardName);
|
||||
|
||||
|
|
@ -148,6 +147,10 @@ public final class LanguageListActivity extends AppCompatActivity implements OnK
|
|||
i.putExtras(bundle);
|
||||
startActivity(i);
|
||||
}
|
||||
} else {
|
||||
// language.keyboards.size() == 0
|
||||
// No language.keyboards entries exist because of previous failure in downloading keyboard catalog
|
||||
Toast.makeText(context, "One or more resources failed to update!", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -43,6 +43,8 @@ public final class LanguageSettingsActivity extends AppCompatActivity {
|
|||
private static Toolbar toolbar = null;
|
||||
private static ListView listView = null;
|
||||
private static TextView lexicalModelTextView = null;
|
||||
private static TextView correctionsTextView = null;
|
||||
private static SwitchCompat correctionsToggle = null;
|
||||
private ImageButton addButton = null;
|
||||
private String associatedLexicalModel = "";
|
||||
private String lgCode;
|
||||
|
|
@ -66,12 +68,20 @@ public final class LanguageSettingsActivity extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
SwitchCompat correctToggle = (SwitchCompat) v;
|
||||
// For predictions/corrections toggle
|
||||
SwitchCompat toggle = (SwitchCompat) v;
|
||||
|
||||
SharedPreferences.Editor prefEditor = prefs.edit();
|
||||
|
||||
// predictionsToggle overrides correctionToggle and correctionsTextView
|
||||
if (prefsKey.endsWith(predictionPrefSuffix)) {
|
||||
boolean override = toggle.isChecked();
|
||||
overrideCorrectionsToggle(override);
|
||||
}
|
||||
|
||||
// This will allow preemptively making settings for languages without models.
|
||||
// Seems more trouble than it's worth to block this.
|
||||
SharedPreferences.Editor prefEditor = prefs.edit();
|
||||
prefEditor.putBoolean(prefsKey, correctToggle.isChecked());
|
||||
prefEditor.putBoolean(prefsKey, toggle.isChecked());
|
||||
prefEditor.apply();
|
||||
|
||||
// Don't use/apply language modeling settings for languages without models.
|
||||
|
|
@ -136,21 +146,23 @@ public final class LanguageSettingsActivity extends AppCompatActivity {
|
|||
|
||||
RelativeLayout layout = (RelativeLayout)findViewById(R.id.corrections_toggle);
|
||||
|
||||
textView = (TextView) layout.findViewById(R.id.text1);
|
||||
textView.setText(getString(R.string.enable_corrections));
|
||||
SwitchCompat toggle = layout.findViewById(R.id.toggle);
|
||||
toggle.setChecked(mayCorrect); // Link to persistent option storage! Also needs handler.
|
||||
correctionsTextView = (TextView) layout.findViewById(R.id.text1);
|
||||
correctionsTextView.setText(getString(R.string.enable_corrections));
|
||||
correctionsToggle = layout.findViewById(R.id.toggle);
|
||||
correctionsToggle.setChecked(mayCorrect); // Link to persistent option storage! Also needs handler.
|
||||
String prefsKey = getLanguageCorrectionPreferenceKey(lgCode);
|
||||
toggle.setOnClickListener(new PreferenceToggleListener(prefsKey, lgCode));
|
||||
correctionsToggle.setOnClickListener(new PreferenceToggleListener(prefsKey, lgCode));
|
||||
|
||||
layout = (RelativeLayout)findViewById(R.id.predictions_toggle);
|
||||
|
||||
textView = (TextView) layout.findViewById(R.id.text1);
|
||||
textView.setText(getString(R.string.enable_predictions));
|
||||
toggle = layout.findViewById(R.id.toggle);
|
||||
toggle.setChecked(mayPredict); // Link to persistent option storage! Also needs handler.
|
||||
SwitchCompat predictionsToggle = layout.findViewById(R.id.toggle);
|
||||
predictionsToggle.setChecked(mayPredict); // Link to persistent option storage! Also needs handler.
|
||||
prefsKey = getLanguagePredictionPreferenceKey(lgCode);
|
||||
toggle.setOnClickListener(new PreferenceToggleListener(prefsKey, lgCode));
|
||||
predictionsToggle.setOnClickListener(new PreferenceToggleListener(prefsKey, lgCode));
|
||||
|
||||
overrideCorrectionsToggle(mayPredict);
|
||||
|
||||
layout = (RelativeLayout)findViewById(R.id.model_picker);
|
||||
textView = (TextView) layout.findViewById(R.id.text1);
|
||||
|
|
@ -305,6 +317,25 @@ public final class LanguageSettingsActivity extends AppCompatActivity {
|
|||
return langID + correctionPrefSuffix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides the enable and visibility of corrections toggle,
|
||||
* and overrides the enable of the corrections text view.
|
||||
* Does not change the corrections toggle value.
|
||||
* @param override boolean - Value from predictions toggle
|
||||
* When true, enables corrections toggle and text field, and makes corrections toggle visible
|
||||
* When false, disables corrections toggle and text field, and makes corrections toggle invisible
|
||||
*/
|
||||
private void overrideCorrectionsToggle(boolean override) {
|
||||
if (correctionsTextView != null) {
|
||||
correctionsTextView.setEnabled(override);
|
||||
}
|
||||
if (correctionsToggle != null) {
|
||||
correctionsToggle.setEnabled(override);
|
||||
int visibility = override ? View.VISIBLE : View.INVISIBLE;
|
||||
correctionsToggle.setVisibility(visibility);
|
||||
}
|
||||
}
|
||||
|
||||
// Fully details the building of this Activity's list view items.
|
||||
static private class FilteredKeyboardsAdapter extends NestedAdapter<com.tavultesoft.kmea.data.Keyboard, Dataset.Keyboards, String> {
|
||||
static final int RESOURCE = R.layout.list_row_layout1;
|
||||
|
|
|
|||
5
android/KMEA/app/src/main/res/drawable/textview_item.xml
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_enabled="false" android:color="@android:color/darker_gray" />
|
||||
<item android:color="@android:color/black"/>
|
||||
</selector>
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/text1"
|
||||
android:textColor="@android:color/black"
|
||||
android:textColor="@drawable/textview_item"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="15dp"
|
||||
|
|
|
|||
|
|
@ -3,6 +3,21 @@
|
|||
## 13.0 alpha
|
||||
* Start version 13.0
|
||||
|
||||
## 2019-09-26 12.0.4094 beta
|
||||
* Bug Fixes:
|
||||
* Fix crash when Language picker doesn't contain keyboard catalog info (#2138)
|
||||
* Fix crashes involving dismissing keyboard and selecting the last keyboard (#2135)
|
||||
* Improve keyboard swap stability (#2136)
|
||||
|
||||
## 2019-09-26 12.0.4093 beta
|
||||
* No change to Keyman for Android (updated Keyman Web Engine, #2126)
|
||||
|
||||
## 2019-09-23 12.0.4092 beta
|
||||
* Disable corrections toggle when predictions are disabled (#2119)
|
||||
|
||||
## 2019-09-20 12.0.4091 beta
|
||||
* Update offline help content (#2104)
|
||||
|
||||
## 2019-09-19 12.0.4090 beta
|
||||
* Use versioned help on the Info page (#2103)
|
||||
|
||||
|
|
|
|||
6
developer/js/.npmignore
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
# Ignore files required only in development.
|
||||
build.sh
|
||||
source/*
|
||||
tests/*
|
||||
*.js.map
|
||||
tsconfig.json
|
||||
|
|
@ -1,8 +1,17 @@
|
|||
Keyman Developer
|
||||
================
|
||||
|
||||
This contains the source code of Keyman development tools. This also
|
||||
contains `kmlmc`.
|
||||
This contains the source code of Keyman development 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 only in the
|
||||
[lexical-models repository](https://github.com/keymanapp/lexical-models).
|
||||
|
||||
In order to build [lexical models][], these tools must be built and
|
||||
compiled.
|
||||
|
|
@ -22,6 +31,14 @@ How to run the tests
|
|||
./build.sh -test
|
||||
|
||||
|
||||
How to update the package version
|
||||
---------------------------------
|
||||
|
||||
**NOTE**: this step should only be performed on the CI server:
|
||||
|
||||
./build.sh -version MAJOR.MINOR.${BUILD_NUMBER} [-tier (alpha|beta)]
|
||||
|
||||
|
||||
How to install
|
||||
--------------
|
||||
|
||||
|
|
|
|||
|
|
@ -17,38 +17,106 @@ build () {
|
|||
}
|
||||
|
||||
display_usage ( ) {
|
||||
echo "Usage: $0 [-test]"
|
||||
echo "Usage: $0 [-test] [-version version] [-tier tier]"
|
||||
echo " $0 -help"
|
||||
echo
|
||||
echo " -help displays this screen and exits"
|
||||
echo " -version version sets the package version before building"
|
||||
echo " -test runs unit tests after building"
|
||||
echo " -publish-to-npm publishes the current version to the npm package index"
|
||||
echo " -tier tier also sets the package version tier and npm tag (alpha, beta, stable) before building or publishing"
|
||||
echo " If version has 4 components, only first three are used."
|
||||
}
|
||||
|
||||
################################ Main script ################################
|
||||
|
||||
run_tests=0
|
||||
install_dependencies=1
|
||||
publish_version=
|
||||
publish_tier=
|
||||
lastkey=
|
||||
should_publish=0
|
||||
npm_dist_tag=
|
||||
|
||||
# Process command-line arguments
|
||||
while [[ $# -gt 0 ]] ; do
|
||||
key="$1"
|
||||
case $key in
|
||||
-help|-h)
|
||||
display_usage
|
||||
exit
|
||||
;;
|
||||
-test)
|
||||
run_tests=1
|
||||
install_dependencies=0
|
||||
;;
|
||||
*)
|
||||
echo "$0: invalid option: $key"
|
||||
display_usage
|
||||
exit $EX_USAGE
|
||||
esac
|
||||
if [[ -z "$lastkey" ]]; then
|
||||
case $key in
|
||||
-help|-h)
|
||||
display_usage
|
||||
exit
|
||||
;;
|
||||
-test)
|
||||
run_tests=1
|
||||
install_dependencies=0
|
||||
;;
|
||||
-version)
|
||||
lastkey=$key
|
||||
;;
|
||||
-tier)
|
||||
lastkey=$key
|
||||
;;
|
||||
-publish-to-npm)
|
||||
should_publish=1
|
||||
;;
|
||||
*)
|
||||
echo "$0: invalid option: $key"
|
||||
display_usage
|
||||
exit $EX_USAGE
|
||||
esac
|
||||
else
|
||||
case $lastkey in
|
||||
-version)
|
||||
publish_version=$key
|
||||
;;
|
||||
-tier)
|
||||
publish_tier=$key
|
||||
;;
|
||||
*)
|
||||
# Should be impossible to reach ;-)
|
||||
echo "$0: invalid option: $lastkey"
|
||||
display_usage
|
||||
exit $EX_USAGE
|
||||
esac
|
||||
lastkey=
|
||||
fi
|
||||
shift # past the processed argument
|
||||
done
|
||||
|
||||
# Validate the publish_version
|
||||
if [ ! -z "$publish_version" ]; then
|
||||
# Remove final component if more than 3 components passed
|
||||
publish_version=` echo "$publish_version" | cut -d "." -f1,2,3 -`
|
||||
[[ $publish_version =~ ^([0-9]+)\.([0-9]+)\.([0-9]+)$ ]] || fail "-version must be dotted numeric string, e.g. 1.2.3."
|
||||
fi
|
||||
|
||||
if [ -n "$publish_tier" ]; then
|
||||
# Make sure we're either setting the version or publishing:
|
||||
if [ -z "$publish_version" ] && (( !should_publish )) ; then
|
||||
fail "-tier cannot be specified without -version or -publish-to-npm"
|
||||
fi
|
||||
|
||||
case "$publish_tier" in
|
||||
alpha)
|
||||
publish_tier=-alpha
|
||||
npm_dist_tag=alpha
|
||||
;;
|
||||
beta)
|
||||
publish_tier=-beta
|
||||
npm_dist_tag=beta
|
||||
;;
|
||||
stable)
|
||||
# Stable releases intentionally have a blank publish tier:
|
||||
publish_tier=
|
||||
npm_dist_tag=latest
|
||||
;;
|
||||
*)
|
||||
fail "-tier must be one of alpha, beta or stable"
|
||||
esac
|
||||
publish_version=$publish_version$publish_tier
|
||||
fi
|
||||
|
||||
# Check if Node.JS/npm is installed.
|
||||
type npm >/dev/null ||\
|
||||
fail "Build environment setup error detected! Please ensure Node.js is installed!"
|
||||
|
|
@ -57,9 +125,21 @@ if (( install_dependencies )) ; then
|
|||
npm install || fail "Could not download dependencies."
|
||||
fi
|
||||
|
||||
if [ -n "$publish_version" ]; then
|
||||
set_npm_version "$publish_version" || fail "Setting version failed."
|
||||
fi
|
||||
|
||||
build || fail "Compilation failed."
|
||||
echo "Typescript compilation successful."
|
||||
|
||||
if (( run_tests )); then
|
||||
npm test || fail "Tests failed"
|
||||
fi
|
||||
|
||||
if (( should_publish )); then
|
||||
# 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.
|
||||
npm publish --access public --tag "${npm_dist_tag:=latest}" || fail "Could not publish ${npm_dist_tag} release."
|
||||
fi
|
||||
|
|
|
|||
502
developer/js/package-lock.json
generated
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"name": "@keymanapp/developer-lexical-model-compiler",
|
||||
"name": "@keymanapp/lexical-model-compiler",
|
||||
"version": "0.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@types/chai": {
|
||||
"version": "4.1.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.7.tgz",
|
||||
"integrity": "sha512-2Y8uPt0/jwjhQ6EiluT0XCri1Dbplr0ZxfFXUz+ye13gaqE8u5gL5ppao1JrUYr9cIip5S6MvQzBS7Kke7U9VA==",
|
||||
"version": "4.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.3.tgz",
|
||||
"integrity": "sha512-VRw2xEGbll3ZiTQ4J02/hUjNqZoue1bMhoo2dgM2LXjDdyaq4q80HgBDHwpI0/VKlo4Eg+BavyQMv/NYgTetzA==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/mocha": {
|
||||
|
|
@ -17,9 +17,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "10.14.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.6.tgz",
|
||||
"integrity": "sha512-Fvm24+u85lGmV4hT5G++aht2C5I4Z4dYlWZIh62FAfFO/TfzXtPpoLI6I7AuBWkIFqZCnhFOoTT7RjjaIL5Fjg==",
|
||||
"version": "10.14.19",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.19.tgz",
|
||||
"integrity": "sha512-j6Sqt38ssdMKutXBUuAcmWF8QtHW1Fwz/mz4Y+Wd9mzpBiVFirjpNQf363hG5itkG+yGaD+oiLyb50HxJ36l9Q==",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-colors": {
|
||||
|
|
@ -44,9 +44,9 @@
|
|||
}
|
||||
},
|
||||
"arg": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz",
|
||||
"integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==",
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.1.tgz",
|
||||
"integrity": "sha512-SlmP3fEA88MBv0PypnXZ8ZfJhwmDeIE3SP71j37AiXQBXYosPV0x6uISAaHYSlSVhmHOVkomen0tbGk6Anlebw==",
|
||||
"dev": true
|
||||
},
|
||||
"argparse": {
|
||||
|
|
@ -130,22 +130,44 @@
|
|||
"dev": true
|
||||
},
|
||||
"cliui": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
|
||||
"integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
|
||||
"integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"string-width": "^2.1.1",
|
||||
"strip-ansi": "^4.0.0",
|
||||
"wrap-ansi": "^2.0.0"
|
||||
"string-width": "^3.1.0",
|
||||
"strip-ansi": "^5.2.0",
|
||||
"wrap-ansi": "^5.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
||||
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
|
||||
"dev": true
|
||||
},
|
||||
"string-width": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
|
||||
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"emoji-regex": "^7.0.1",
|
||||
"is-fullwidth-code-point": "^2.0.0",
|
||||
"strip-ansi": "^5.1.0"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
|
||||
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^4.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"code-point-at": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
|
||||
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
|
||||
"dev": true
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
||||
|
|
@ -162,9 +184,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"commander": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-3.0.0.tgz",
|
||||
"integrity": "sha512-pl3QrGOBa9RZaslQiqnnKX2J068wcQw7j9AIaBQ9/JEp5RY6je4jKTImg0Bd+rpoONSe7GUFSgkxLeo17m3Pow=="
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
|
||||
"integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow=="
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
|
|
@ -172,19 +194,6 @@
|
|||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
||||
"dev": true
|
||||
},
|
||||
"cross-spawn": {
|
||||
"version": "6.0.5",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
|
||||
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"nice-try": "^1.0.4",
|
||||
"path-key": "^2.0.1",
|
||||
"semver": "^5.5.0",
|
||||
"shebang-command": "^1.2.0",
|
||||
"which": "^1.2.9"
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "3.2.6",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
|
||||
|
|
@ -213,7 +222,6 @@
|
|||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
|
||||
"integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"object-keys": "^1.0.12"
|
||||
}
|
||||
|
|
@ -230,34 +238,27 @@
|
|||
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
|
||||
"dev": true
|
||||
},
|
||||
"end-of-stream": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
|
||||
"integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"once": "^1.4.0"
|
||||
}
|
||||
},
|
||||
"es-abstract": {
|
||||
"version": "1.13.0",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
|
||||
"integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
|
||||
"dev": true,
|
||||
"version": "1.14.2",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz",
|
||||
"integrity": "sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==",
|
||||
"requires": {
|
||||
"es-to-primitive": "^1.2.0",
|
||||
"function-bind": "^1.1.1",
|
||||
"has": "^1.0.3",
|
||||
"has-symbols": "^1.0.0",
|
||||
"is-callable": "^1.1.4",
|
||||
"is-regex": "^1.0.4",
|
||||
"object-keys": "^1.0.12"
|
||||
"object-inspect": "^1.6.0",
|
||||
"object-keys": "^1.1.1",
|
||||
"string.prototype.trimleft": "^2.0.0",
|
||||
"string.prototype.trimright": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"es-to-primitive": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
|
||||
"integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-callable": "^1.1.4",
|
||||
"is-date-object": "^1.0.1",
|
||||
|
|
@ -276,21 +277,6 @@
|
|||
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
|
||||
"dev": true
|
||||
},
|
||||
"execa": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
|
||||
"integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cross-spawn": "^6.0.0",
|
||||
"get-stream": "^4.0.0",
|
||||
"is-stream": "^1.1.0",
|
||||
"npm-run-path": "^2.0.0",
|
||||
"p-finally": "^1.0.0",
|
||||
"signal-exit": "^3.0.0",
|
||||
"strip-eof": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"find-up": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
|
||||
|
|
@ -318,8 +304,7 @@
|
|||
"function-bind": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
||||
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
|
||||
"dev": true
|
||||
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
|
||||
},
|
||||
"get-caller-file": {
|
||||
"version": "2.0.5",
|
||||
|
|
@ -333,15 +318,6 @@
|
|||
"integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
|
||||
"dev": true
|
||||
},
|
||||
"get-stream": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
|
||||
"integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"pump": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.1.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
|
||||
|
|
@ -366,7 +342,6 @@
|
|||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
|
||||
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"function-bind": "^1.1.1"
|
||||
}
|
||||
|
|
@ -380,8 +355,7 @@
|
|||
"has-symbols": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
|
||||
"integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
|
||||
"dev": true
|
||||
"integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
|
||||
},
|
||||
"he": {
|
||||
"version": "1.2.0",
|
||||
|
|
@ -405,12 +379,6 @@
|
|||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||
"dev": true
|
||||
},
|
||||
"invert-kv": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
|
||||
"integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
|
||||
"dev": true
|
||||
},
|
||||
"is-buffer": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
|
||||
|
|
@ -420,14 +388,12 @@
|
|||
"is-callable": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
|
||||
"integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA=="
|
||||
},
|
||||
"is-date-object": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
|
||||
"integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
|
||||
"dev": true
|
||||
"integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
|
||||
},
|
||||
"is-fullwidth-code-point": {
|
||||
"version": "2.0.0",
|
||||
|
|
@ -439,22 +405,14 @@
|
|||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
|
||||
"integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"is-stream": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
|
||||
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
|
||||
"dev": true
|
||||
},
|
||||
"is-symbol": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
|
||||
"integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-symbols": "^1.0.0"
|
||||
}
|
||||
|
|
@ -483,15 +441,6 @@
|
|||
"pako": "~0.2.5"
|
||||
}
|
||||
},
|
||||
"lcid": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
|
||||
"integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"invert-kv": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"locate-path": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
|
||||
|
|
@ -523,32 +472,6 @@
|
|||
"integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==",
|
||||
"dev": true
|
||||
},
|
||||
"map-age-cleaner": {
|
||||
"version": "0.1.3",
|
||||
"resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
|
||||
"integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-defer": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"mem": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
|
||||
"integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"map-age-cleaner": "^0.1.1",
|
||||
"mimic-fn": "^2.0.0",
|
||||
"p-is-promise": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"mimic-fn": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
|
||||
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
|
||||
"dev": true
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||
|
|
@ -574,9 +497,9 @@
|
|||
}
|
||||
},
|
||||
"mocha": {
|
||||
"version": "6.1.4",
|
||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-6.1.4.tgz",
|
||||
"integrity": "sha512-PN8CIy4RXsIoxoFJzS4QNnCH4psUCPWc4/rPrst/ecSJJbLBkubMiyGCP2Kj/9YnWbotFqAoeXyXMucj7gwCFg==",
|
||||
"version": "6.2.1",
|
||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.1.tgz",
|
||||
"integrity": "sha512-VCcWkLHwk79NYQc8cxhkmI8IigTIhsCwZ6RTxQsqK6go4UvEhzJkYuHm8B2YtlSxcYq2fY+ucr4JBwoD6ci80A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-colors": "3.2.3",
|
||||
|
|
@ -599,9 +522,9 @@
|
|||
"supports-color": "6.0.0",
|
||||
"which": "1.3.1",
|
||||
"wide-align": "1.1.3",
|
||||
"yargs": "13.2.2",
|
||||
"yargs-parser": "13.0.0",
|
||||
"yargs-unparser": "1.5.0"
|
||||
"yargs": "13.3.0",
|
||||
"yargs-parser": "13.1.1",
|
||||
"yargs-unparser": "1.6.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"supports-color": {
|
||||
|
|
@ -621,12 +544,6 @@
|
|||
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
|
||||
"dev": true
|
||||
},
|
||||
"nice-try": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
|
||||
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node": {
|
||||
"version": "11.15.0",
|
||||
"resolved": "https://registry.npmjs.org/node/-/node-11.15.0.tgz",
|
||||
|
|
@ -658,26 +575,15 @@
|
|||
"jszip": "2.5.0"
|
||||
}
|
||||
},
|
||||
"npm-run-path": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
|
||||
"integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"path-key": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"number-is-nan": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
|
||||
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
|
||||
"dev": true
|
||||
"object-inspect": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
|
||||
"integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ=="
|
||||
},
|
||||
"object-keys": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
|
||||
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
|
||||
},
|
||||
"object.assign": {
|
||||
"version": "4.1.0",
|
||||
|
|
@ -695,7 +601,6 @@
|
|||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
|
||||
"integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"define-properties": "^1.1.2",
|
||||
"es-abstract": "^1.5.1"
|
||||
|
|
@ -710,39 +615,10 @@
|
|||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"os-locale": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
|
||||
"integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"execa": "^1.0.0",
|
||||
"lcid": "^2.0.0",
|
||||
"mem": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"p-defer": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
|
||||
"integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
|
||||
"dev": true
|
||||
},
|
||||
"p-finally": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
|
||||
"integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
|
||||
"dev": true
|
||||
},
|
||||
"p-is-promise": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
|
||||
"integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
|
||||
"dev": true
|
||||
},
|
||||
"p-limit": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
|
||||
"integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
|
||||
"integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-try": "^2.0.0"
|
||||
|
|
@ -780,28 +656,12 @@
|
|||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
||||
"dev": true
|
||||
},
|
||||
"path-key": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
|
||||
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
|
||||
"dev": true
|
||||
},
|
||||
"pathval": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
|
||||
"integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
|
||||
"dev": true
|
||||
},
|
||||
"pump": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
|
||||
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"end-of-stream": "^1.1.0",
|
||||
"once": "^1.3.1"
|
||||
}
|
||||
},
|
||||
"require-directory": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
||||
|
|
@ -820,9 +680,9 @@
|
|||
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
|
||||
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
||||
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
|
||||
"dev": true
|
||||
},
|
||||
"set-blocking": {
|
||||
|
|
@ -831,27 +691,6 @@
|
|||
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
|
||||
"dev": true
|
||||
},
|
||||
"shebang-command": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
|
||||
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"shebang-regex": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"shebang-regex": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
|
||||
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
|
||||
"dev": true
|
||||
},
|
||||
"signal-exit": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
|
||||
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
|
||||
"dev": true
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
|
|
@ -859,9 +698,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"source-map-support": {
|
||||
"version": "0.5.12",
|
||||
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
|
||||
"integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
|
||||
"version": "0.5.13",
|
||||
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
|
||||
"integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"buffer-from": "^1.0.0",
|
||||
|
|
@ -884,6 +723,24 @@
|
|||
"strip-ansi": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"string.prototype.trimleft": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
|
||||
"integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
|
||||
"requires": {
|
||||
"define-properties": "^1.1.3",
|
||||
"function-bind": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"string.prototype.trimright": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
|
||||
"integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
|
||||
"requires": {
|
||||
"define-properties": "^1.1.3",
|
||||
"function-bind": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
|
||||
|
|
@ -893,12 +750,6 @@
|
|||
"ansi-regex": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"strip-eof": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
|
||||
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
|
||||
"dev": true
|
||||
},
|
||||
"strip-json-comments": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
|
||||
|
|
@ -915,9 +766,9 @@
|
|||
}
|
||||
},
|
||||
"ts-node": {
|
||||
"version": "8.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz",
|
||||
"integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==",
|
||||
"version": "8.4.1",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.4.1.tgz",
|
||||
"integrity": "sha512-5LpRN+mTiCs7lI5EtbXmF/HfMeCjzt7DH9CZwtkr6SywStrNQC723wG+aOWFiLNn7zT3kD/RnFqi3ZUfr4l5Qw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"arg": "^4.1.0",
|
||||
|
|
@ -942,9 +793,18 @@
|
|||
"dev": true
|
||||
},
|
||||
"typescript": {
|
||||
"version": "3.4.5",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.5.tgz",
|
||||
"integrity": "sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw=="
|
||||
"version": "3.6.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.3.tgz",
|
||||
"integrity": "sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw=="
|
||||
},
|
||||
"util.promisify": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
|
||||
"integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
|
||||
"requires": {
|
||||
"define-properties": "^1.1.2",
|
||||
"object.getownpropertydescriptors": "^2.0.3"
|
||||
}
|
||||
},
|
||||
"which": {
|
||||
"version": "1.3.1",
|
||||
|
|
@ -971,48 +831,40 @@
|
|||
}
|
||||
},
|
||||
"wrap-ansi": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
|
||||
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
|
||||
"integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"string-width": "^1.0.1",
|
||||
"strip-ansi": "^3.0.1"
|
||||
"ansi-styles": "^3.2.0",
|
||||
"string-width": "^3.0.0",
|
||||
"strip-ansi": "^5.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
||||
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
||||
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
|
||||
"dev": true
|
||||
},
|
||||
"is-fullwidth-code-point": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
|
||||
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"number-is-nan": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"string-width": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
||||
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
|
||||
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"code-point-at": "^1.0.0",
|
||||
"is-fullwidth-code-point": "^1.0.0",
|
||||
"strip-ansi": "^3.0.0"
|
||||
"emoji-regex": "^7.0.1",
|
||||
"is-fullwidth-code-point": "^2.0.0",
|
||||
"strip-ansi": "^5.1.0"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
||||
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
|
||||
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^2.0.0"
|
||||
"ansi-regex": "^4.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1024,18 +876,19 @@
|
|||
"dev": true
|
||||
},
|
||||
"xml2js": {
|
||||
"version": "0.4.19",
|
||||
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
|
||||
"integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
|
||||
"version": "0.4.22",
|
||||
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.22.tgz",
|
||||
"integrity": "sha512-MWTbxAQqclRSTnehWWe5nMKzI3VmJ8ltiJEco8akcC6j3miOhjjfzKum5sId+CWhfxdOs/1xauYr8/ZDBtQiRw==",
|
||||
"requires": {
|
||||
"sax": ">=0.6.0",
|
||||
"xmlbuilder": "~9.0.1"
|
||||
"util.promisify": "~1.0.0",
|
||||
"xmlbuilder": "~11.0.0"
|
||||
}
|
||||
},
|
||||
"xmlbuilder": {
|
||||
"version": "9.0.7",
|
||||
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
|
||||
"integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0="
|
||||
"version": "11.0.1",
|
||||
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
|
||||
"integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
|
||||
},
|
||||
"y18n": {
|
||||
"version": "4.0.0",
|
||||
|
|
@ -1044,22 +897,21 @@
|
|||
"dev": true
|
||||
},
|
||||
"yargs": {
|
||||
"version": "13.2.2",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz",
|
||||
"integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==",
|
||||
"version": "13.3.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
|
||||
"integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cliui": "^4.0.0",
|
||||
"cliui": "^5.0.0",
|
||||
"find-up": "^3.0.0",
|
||||
"get-caller-file": "^2.0.1",
|
||||
"os-locale": "^3.1.0",
|
||||
"require-directory": "^2.1.1",
|
||||
"require-main-filename": "^2.0.0",
|
||||
"set-blocking": "^2.0.0",
|
||||
"string-width": "^3.0.0",
|
||||
"which-module": "^2.0.0",
|
||||
"y18n": "^4.0.0",
|
||||
"yargs-parser": "^13.0.0"
|
||||
"yargs-parser": "^13.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
|
|
@ -1091,9 +943,9 @@
|
|||
}
|
||||
},
|
||||
"yargs-parser": {
|
||||
"version": "13.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz",
|
||||
"integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==",
|
||||
"version": "13.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
|
||||
"integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"camelcase": "^5.0.0",
|
||||
|
|
@ -1101,64 +953,20 @@
|
|||
}
|
||||
},
|
||||
"yargs-unparser": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz",
|
||||
"integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==",
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz",
|
||||
"integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"flat": "^4.1.0",
|
||||
"lodash": "^4.17.11",
|
||||
"yargs": "^12.0.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"get-caller-file": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
|
||||
"integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
|
||||
"dev": true
|
||||
},
|
||||
"require-main-filename": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
|
||||
"integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
|
||||
"dev": true
|
||||
},
|
||||
"yargs": {
|
||||
"version": "12.0.5",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
|
||||
"integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cliui": "^4.0.0",
|
||||
"decamelize": "^1.2.0",
|
||||
"find-up": "^3.0.0",
|
||||
"get-caller-file": "^1.0.1",
|
||||
"os-locale": "^3.0.0",
|
||||
"require-directory": "^2.1.1",
|
||||
"require-main-filename": "^1.0.1",
|
||||
"set-blocking": "^2.0.0",
|
||||
"string-width": "^2.0.0",
|
||||
"which-module": "^2.0.0",
|
||||
"y18n": "^3.2.1 || ^4.0.0",
|
||||
"yargs-parser": "^11.1.1"
|
||||
}
|
||||
},
|
||||
"yargs-parser": {
|
||||
"version": "11.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
|
||||
"integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"camelcase": "^5.0.0",
|
||||
"decamelize": "^1.2.0"
|
||||
}
|
||||
}
|
||||
"lodash": "^4.17.15",
|
||||
"yargs": "^13.3.0"
|
||||
}
|
||||
},
|
||||
"yn": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz",
|
||||
"integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==",
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
|
||||
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "@keymanapp/developer-lexical-model-compiler",
|
||||
"name": "@keymanapp/lexical-model-compiler",
|
||||
"version": "0.0.0",
|
||||
"description": "Keyman Developer lexical model compiler",
|
||||
"keywords": [
|
||||
|
|
@ -11,7 +11,8 @@
|
|||
],
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"test": "mocha"
|
||||
"test": "mocha",
|
||||
"prepublishOnly": "npm run build"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
@ -19,14 +20,14 @@
|
|||
},
|
||||
"author": "Marc Durdin <marc@keyman.com> (https://github.com/mcdurdin)",
|
||||
"contributors": [
|
||||
"Eddie Antonio Santos",
|
||||
"Eddie Antonio Santos <Eddie.Santos@nrc-cnrc.gc.ca>",
|
||||
"Joshua Horton"
|
||||
],
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/keymanapp/keyman/issues"
|
||||
},
|
||||
"homepage": "https://github.com/keymanapp/keyman#readme",
|
||||
"homepage": "https://github.com/keymanapp/keyman/tree/master/common/predictive-text#readme",
|
||||
"bin": {
|
||||
"kmlmc": "dist/kmlmc.js",
|
||||
"kmlmp": "dist/kmlmp.js",
|
||||
|
|
|
|||
73
docs/npm-packages.md
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
npm packages
|
||||
============
|
||||
|
||||
This is a guide for how the various Keyman `npm` packages are developed
|
||||
and published.
|
||||
|
||||
`npm` packages are published on the CI (continuous integration) server.
|
||||
Currently, we're using TeamCity for this.
|
||||
|
||||
Packages are **never** published from a developer's machine.
|
||||
|
||||
|
||||
For CI developers
|
||||
-----------------
|
||||
|
||||
### In general
|
||||
|
||||
Before publishing, a package must be **built** and **tested** on the CI
|
||||
server.
|
||||
|
||||
This is typically done with:
|
||||
|
||||
./build.sh -test
|
||||
|
||||
Once the build succeeds and the tests pass, the version is set in
|
||||
`package.json`:
|
||||
|
||||
./build.sh -version 12.0.${BUILD_NUMBER} -tier ${tier}
|
||||
|
||||
Now you can publish! Use the following script for this (again, **only on the CI server**!)
|
||||
|
||||
./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,
|
||||
|
||||
$ npm publish
|
||||
npm notice 📦 @keymanapp/lexical-model-compiler@0.0.0
|
||||
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
|
||||
|
||||
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.
|
||||
|
||||
|
||||
### `set_npm_version`
|
||||
|
||||
This helper function sets the version in the `package.json` for the
|
||||
given package. It must be given a three-part version number, with an
|
||||
optional tier, "alpha" or "beta". No tier indicates "stable".
|
||||
|
||||
```bash
|
||||
. $KEYMAN_REPOSITORY_ROOT/resources/shellHelperFunctions.sh
|
||||
|
||||
set_npm_version MAJOR.MINOR.PATCH[-alpha|-beta]
|
||||
```
|
||||
|
|
@ -1524,6 +1524,7 @@
|
|||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
ENABLE_BITCODE = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
|
|
@ -1577,6 +1578,7 @@
|
|||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
ENABLE_BITCODE = YES;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ class LanguageSettingsViewController: UITableViewController {
|
|||
userDefaults.set(predictSetting: value, forLanguageID: self.language.id)
|
||||
|
||||
// Reactively set the corrections switch interactivity state.
|
||||
self.doCorrectionsSwitch?.isEnabled = value
|
||||
self.doCorrectionsSwitch?.isHidden = !value
|
||||
self.doCorrectionsLabel?.isEnabled = value
|
||||
self.correctionsCell?.isUserInteractionEnabled = value
|
||||
|
||||
|
|
@ -163,7 +163,7 @@ class LanguageSettingsViewController: UITableViewController {
|
|||
}
|
||||
|
||||
// Disable interactivity if the prediction toggle is set to 'off'.
|
||||
doCorrectionsSwitch!.isEnabled = userDefaults.predictSettingForLanguage(languageID: self.language.id)
|
||||
doCorrectionsSwitch!.isHidden = !userDefaults.predictSettingForLanguage(languageID: self.language.id)
|
||||
cell.isUserInteractionEnabled = userDefaults.predictSettingForLanguage(languageID: self.language.id)
|
||||
} else { // rows 3 and 4
|
||||
cell.accessoryType = .disclosureIndicator
|
||||
|
|
@ -229,7 +229,7 @@ class LanguageSettingsViewController: UITableViewController {
|
|||
case 1:
|
||||
doCorrectionsLabel = cell.textLabel
|
||||
cell.textLabel?.text = "Enable corrections"
|
||||
cell.textLabel?.isEnabled = doCorrectionsSwitch?.isEnabled ?? false
|
||||
cell.textLabel?.isEnabled = !(doCorrectionsSwitch?.isHidden ?? false)
|
||||
case 2:
|
||||
cell.textLabel?.text = "Dictionaries"
|
||||
cell.accessoryType = .disclosureIndicator
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
|
||||
_shf_base_dir=$(dirname "$BASH_SOURCE")/..
|
||||
|
||||
|
|
@ -239,3 +239,21 @@ set_version ( ) {
|
|||
fi
|
||||
}
|
||||
|
||||
|
||||
# Uses npm to set the current package version (package.json).
|
||||
#
|
||||
# NOTE: this must be invoked exclusively on the CI system!
|
||||
#
|
||||
# Usage:
|
||||
#
|
||||
# set_npm_version VERSION_WITH_TIER
|
||||
#
|
||||
set_npm_version () {
|
||||
local version=$1
|
||||
# We use --no-git-tag-version because our CI system controls version numbering and
|
||||
# already tags releases. We also want to have the version of this match the
|
||||
# release of Keyman Developer -- these two versions should be in sync. Because this
|
||||
# is a large repo with multiple projects and build systems, it's better for us that
|
||||
# individual build systems don't take too much ownership of git tagging. :)
|
||||
npm --no-git-tag-version --allow-same-version version "$version" || fail "Could not set package version to $version."
|
||||
}
|
||||
|
|
|
|||