From 0fbf53f8d7c25377b583f8fdc148ec3dcc1036a7 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Sun, 17 Apr 2022 06:47:39 +1000 Subject: [PATCH 1/3] chore(web): move version from package.json to keyman-version package Starts to resolve the chaos of putting version numbers into every package.json file. Adds a new keyman-version package which mimics the version information in build-utils.sh. This will eventually replace resources/web-environment. Fixes the build for the lexical model compiler tools to remove refs to package.json version and use keyman-version instead. More fixes coming in a follow-up. --- common/core/web/input-processor/package.json | 1 - .../core/web/keyboard-processor/package.json | 1 - common/core/web/tools/recorder/package.json | 1 - .../web/tools/sentry-manager/package.json | 1 - common/core/web/utils/package.json | 1 - common/models/templates/package.json | 1 - common/models/types/package.json | 1 - common/models/wordbreakers/package.json | 1 - common/predictive-text/package.json | 1 - common/test/predictive-text/package.json | 1 - common/web/es6-shim/package.json | 1 - common/web/keyman-version/.gitignore | 2 + common/web/keyman-version/build.sh | 75 +++++++++++++++++++ common/web/keyman-version/index.ts | 6 ++ common/web/keyman-version/package.json | 19 +++++ common/web/keyman-version/tsconfig.json | 18 +++++ common/web/lm-message-types/package.json | 1 - common/web/lm-worker/package.json | 1 - developer/js/build.sh | 4 +- developer/js/package.json | 6 +- developer/js/source/kmlmc.ts | 4 +- developer/js/source/kmlmi.ts | 2 +- developer/js/source/kmlmp.ts | 2 +- .../model-definitions.ts | 2 +- developer/js/tsconfig.json | 10 ++- package-lock.json | 61 ++++++++++----- resources/build/version/package.json | 3 +- resources/gosh/package.json | 1 - resources/web-environment/package.json | 1 - tsconfig-base.json | 1 + tsconfig.json | 3 +- web/package.json | 1 - web/testing/regression-tests/package.json | 1 - 33 files changed, 187 insertions(+), 48 deletions(-) create mode 100644 common/web/keyman-version/.gitignore create mode 100644 common/web/keyman-version/build.sh create mode 100644 common/web/keyman-version/index.ts create mode 100644 common/web/keyman-version/package.json create mode 100644 common/web/keyman-version/tsconfig.json diff --git a/common/core/web/input-processor/package.json b/common/core/web/input-processor/package.json index 2b81d88516..044a949ac8 100644 --- a/common/core/web/input-processor/package.json +++ b/common/core/web/input-processor/package.json @@ -1,6 +1,5 @@ { "name": "@keymanapp/input-processor", - "version": "15.0.233", "description": "The core text and prediction processing engine for KeymanWeb", "repository": { "type": "git", diff --git a/common/core/web/keyboard-processor/package.json b/common/core/web/keyboard-processor/package.json index bc3ae514c5..6fd931f8ba 100644 --- a/common/core/web/keyboard-processor/package.json +++ b/common/core/web/keyboard-processor/package.json @@ -1,6 +1,5 @@ { "name": "@keymanapp/keyboard-processor", - "version": "15.0.233", "description": "Core module for Keyman keyboard support in KeymanWeb.", "repository": { "type": "git", diff --git a/common/core/web/tools/recorder/package.json b/common/core/web/tools/recorder/package.json index 94c7a7ef1b..a9101b2048 100644 --- a/common/core/web/tools/recorder/package.json +++ b/common/core/web/tools/recorder/package.json @@ -1,6 +1,5 @@ { "name": "@keymanapp/recorder-core", - "version": "15.0.233", "description": "Core classes used to develop KeymanWeb test cases based on keystrokes", "main": "index.js", "scripts": { diff --git a/common/core/web/tools/sentry-manager/package.json b/common/core/web/tools/sentry-manager/package.json index 5adcbc35da..710f3fc9cd 100644 --- a/common/core/web/tools/sentry-manager/package.json +++ b/common/core/web/tools/sentry-manager/package.json @@ -1,6 +1,5 @@ { "name": "@keymanapp/web-sentry-manager", - "version": "15.0.233", "description": "Common setup for KeymanWeb's Sentry-based error reporting", "main": "dist/index.js", "scripts": { diff --git a/common/core/web/utils/package.json b/common/core/web/utils/package.json index 118c7fe72b..88c8308791 100644 --- a/common/core/web/utils/package.json +++ b/common/core/web/utils/package.json @@ -1,6 +1,5 @@ { "name": "@keymanapp/web-utils", - "version": "15.0.233", "description": "Common utility functions used throughout other Keyman packages", "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/common/models/templates/package.json b/common/models/templates/package.json index 90ea22b3ab..d4eafa6f0c 100644 --- a/common/models/templates/package.json +++ b/common/models/templates/package.json @@ -1,6 +1,5 @@ { "name": "@keymanapp/models-templates", - "version": "15.0.233", "description": "Backing model implementations (templates) for Keyman's modelling layer", "keywords": [ "lm", diff --git a/common/models/types/package.json b/common/models/types/package.json index 116d983182..9cdff83231 100644 --- a/common/models/types/package.json +++ b/common/models/types/package.json @@ -1,6 +1,5 @@ { "name": "@keymanapp/models-types", - "version": "15.0.233", "description": "Type definitions in used in the modeling (lexical model/predictive text) component of Keyman.", "types": "./index.d.ts", "scripts": { diff --git a/common/models/wordbreakers/package.json b/common/models/wordbreakers/package.json index 447247dfc1..38cf3a0175 100644 --- a/common/models/wordbreakers/package.json +++ b/common/models/wordbreakers/package.json @@ -1,6 +1,5 @@ { "name": "@keymanapp/models-wordbreakers", - "version": "15.0.233", "description": "Word breakers bundled in the modeling layer", "keywords": [ "lexical model", diff --git a/common/predictive-text/package.json b/common/predictive-text/package.json index fe6ae706fb..11c73b3e86 100644 --- a/common/predictive-text/package.json +++ b/common/predictive-text/package.json @@ -1,6 +1,5 @@ { "name": "@keymanapp/lexical-model-layer", - "version": "15.0.233", "description": "Keyman/Predictive Text integration layer", "main": "build/index.js", "scripts": { diff --git a/common/test/predictive-text/package.json b/common/test/predictive-text/package.json index 2c0cf1be90..2a77bac33c 100644 --- a/common/test/predictive-text/package.json +++ b/common/test/predictive-text/package.json @@ -1,6 +1,5 @@ { "name": "lmlayer-cli", - "version": "0.2.0", "description": "Command line interface to the predictive text engine.", "main": "index.js", "bin": "./index.js", diff --git a/common/web/es6-shim/package.json b/common/web/es6-shim/package.json index 7af4ebbeb1..9740e874f1 100644 --- a/common/web/es6-shim/package.json +++ b/common/web/es6-shim/package.json @@ -1,6 +1,5 @@ { "name": "@keymanapp/es6-shim", - "version": "15.0.230", "description": "Keyman/es6-shim", "main": "build/index.js", "scripts": { diff --git a/common/web/keyman-version/.gitignore b/common/web/keyman-version/.gitignore new file mode 100644 index 0000000000..3e3464001b --- /dev/null +++ b/common/web/keyman-version/.gitignore @@ -0,0 +1,2 @@ +# version.inc.ts is generated during the build +version.inc.ts \ No newline at end of file diff --git a/common/web/keyman-version/build.sh b/common/web/keyman-version/build.sh new file mode 100644 index 0000000000..5589e0f678 --- /dev/null +++ b/common/web/keyman-version/build.sh @@ -0,0 +1,75 @@ +#!/bin/bash +# +# Builds the include script for the current Keyman version. +# + +# 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 + +# This script runs from its own folder +cd "$(dirname "$THIS_SCRIPT")" + +display_usage ( ) { + echo "Usage: $0 [configure] [clean] [build] [test]" + echo " [--verbose|-v]" + echo " $0 -h|--help" + echo + echo " clean removes build/ folder" + echo " configure runs 'npm ci' on root folder" + echo " build builds wrapped version of package" + echo " [if required will: configure]" + echo " test runs tests (builds as req'd)" + echo " [if required will: build]" +} + +################################ Main script ################################ + +builder_init "clean configure build" "$@" + +# TODO: build if out-of-date if test is specified +# TODO: configure if npm has not been run, and build is specified + +if builder_has_action configure; then + verify_npm_setup + builder_report configure success +fi + +if builder_has_action clean; then + npm run clean + rm -f ./version.inc.ts + builder_report clean success +fi + +if builder_has_action build; then + # Generate index.ts + echo " + // Generated by common/web/keyman-version/build.sh + namespace KEYMAN_VERSION { + export const + VERSION = \"$VERSION\", + VERSION_RELEASE =\"$VERSION_RELEASE\", + VERSION_MAJOR = \"$VERSION_MAJOR\", + VERSION_MINOR = \"$VERSION_MINOR\", + VERSION_PATCH = \"$VERSION_PATCH\", + TIER =\"$TIER\", + VERSION_TAG = \"$VERSION_TAG\", + VERSION_WITH_TAG = \"$VERSION_WITH_TAG\", + VERSION_ENVIRONMENT = \"$VERSION_ENVIRONMENT\"; + } + " > ./version.inc.ts + + # Build + npm run build -- $builder_verbose || die "Could not build worker." + builder_report build success +fi + +if builder_has_action test; then + npm test || fail "Tests failed" + builder_report test success +fi diff --git a/common/web/keyman-version/index.ts b/common/web/keyman-version/index.ts new file mode 100644 index 0000000000..c43b040ab4 --- /dev/null +++ b/common/web/keyman-version/index.ts @@ -0,0 +1,6 @@ +/// + +// Add all namespaces defined here to the global scope: +if (typeof module != 'undefined' && typeof module.exports != 'undefined') { + module.exports['KEYMAN_VERSION'] = KEYMAN_VERSION; +} diff --git a/common/web/keyman-version/package.json b/common/web/keyman-version/package.json new file mode 100644 index 0000000000..9514d6e3f8 --- /dev/null +++ b/common/web/keyman-version/package.json @@ -0,0 +1,19 @@ +{ + "name": "@keymanapp/keyman-version", + "description": "Keyman global version data", + "main": "./build/index.js", + "exports": "./build/index.js", + "scripts": { + "build": "echo 'Building @keymanapp/keyman-version' && tsc -b", + "clean": "tsc -b --clean", + "postinstall": "gosh ./build.sh build", + "postci": "gosh ./build.sh build" + }, + "license": "MIT", + "devDependencies": { + "ts-node": "^9.1.1", + "typescript": "^4.5.4", + "@types/node": "^14.0.4", + "@keymanapp/resources-gosh": "*" + } +} diff --git a/common/web/keyman-version/tsconfig.json b/common/web/keyman-version/tsconfig.json new file mode 100644 index 0000000000..1e09c41a0e --- /dev/null +++ b/common/web/keyman-version/tsconfig.json @@ -0,0 +1,18 @@ +{ + "extends": "../../../tsconfig-base.json", + + "compilerOptions": { + "allowJs": false, + "declaration": true, + "module": "none", + "outFile": "build/index.js", + "sourceMap": true, + "lib": ["webworker", "es6"], + "target": "es5", + "downlevelIteration": true, + }, + "include": [ + "index.ts", + "version.inc.ts" + ] +} diff --git a/common/web/lm-message-types/package.json b/common/web/lm-message-types/package.json index f8b5de235e..1941d69ab3 100644 --- a/common/web/lm-message-types/package.json +++ b/common/web/lm-message-types/package.json @@ -1,6 +1,5 @@ { "name": "@keymanapp/lm-message-types", - "version": "15.0.233", "description": "Type definitions in used in the lm layer (lexical model/predictive text) component of Keyman.", "types": "./message.d.ts", "scripts": { diff --git a/common/web/lm-worker/package.json b/common/web/lm-worker/package.json index 58f664ebf8..4a2df1469c 100644 --- a/common/web/lm-worker/package.json +++ b/common/web/lm-worker/package.json @@ -1,6 +1,5 @@ { "name": "@keymanapp/lm-worker", - "version": "15.0.233", "description": "Keyman/Predictive Text worker", "main": "build/index.js", "scripts": { diff --git a/developer/js/build.sh b/developer/js/build.sh index f2af9d332a..4182fd6088 100755 --- a/developer/js/build.sh +++ b/developer/js/build.sh @@ -96,8 +96,6 @@ if (( install_dependencies )) ; then verify_npm_setup fi -set_npm_version || fail "Setting version failed." - build || fail "Compilation failed." echo "Typescript compilation successful." @@ -106,6 +104,8 @@ if (( run_tests )); then fi if (( should_publish )); then + set_npm_version || fail "Setting version failed." + if [[ $TIER == stable ]]; then npm_dist_tag=latest else diff --git a/developer/js/package.json b/developer/js/package.json index 993495d781..bfde9a39d3 100644 --- a/developer/js/package.json +++ b/developer/js/package.json @@ -1,6 +1,5 @@ { "name": "@keymanapp/lexical-model-compiler", - "version": "15.0.233", "description": "Keyman Developer lexical model compiler", "keywords": [ "keyboard", @@ -10,7 +9,7 @@ "unicode" ], "scripts": { - "build": "tsc", + "build": "tsc -b", "test": "mocha", "prepublishOnly": "npm run build" }, @@ -34,7 +33,7 @@ "kmlmi": "dist/kmlmi.js" }, "engines": { - "node": ">=12.0.0" + "node": ">=16.0.0" }, "dependencies": { "@keymanapp/models-types": "*", @@ -45,6 +44,7 @@ "devDependencies": { "@keymanapp/models-templates": "*", "@keymanapp/models-wordbreakers": "*", + "@keymanapp/keyman-version": "*", "@types/chai": "^4.1.7", "@types/mocha": "^5.2.7", "@types/node": "^10.14.6", diff --git a/developer/js/source/kmlmc.ts b/developer/js/source/kmlmc.ts index 70ccf11621..e41a90840c 100644 --- a/developer/js/source/kmlmc.ts +++ b/developer/js/source/kmlmc.ts @@ -12,10 +12,12 @@ import { SysExits } from './util/sysexits'; let inputFilename: string; +/// + /* Arguments */ program .description('Compiles Keyman lexical models') - .version(require('../package.json').version) + .version(KEYMAN_VERSION.VERSION_WITH_TAG) .arguments('') .action(infile => inputFilename = infile) .option('-o, --outFile ', 'where to save the resultant file'); diff --git a/developer/js/source/kmlmi.ts b/developer/js/source/kmlmi.ts index 86c28d5e91..c8c54799fe 100644 --- a/developer/js/source/kmlmi.ts +++ b/developer/js/source/kmlmi.ts @@ -15,7 +15,7 @@ let inputFilename: string; /* Arguments */ program .description('Merges Keyman lexical model model_info files. Intended for use within the keymanapp/lexical-models repository.') - .version(require('../package.json').version) + .version(KEYMAN_VERSION.VERSION_WITH_TAG) .arguments('') .action(infile => inputFilename = infile) .option('-o, --outFile ', 'where to save the resultant file') diff --git a/developer/js/source/kmlmp.ts b/developer/js/source/kmlmp.ts index 729043236c..8504c62963 100644 --- a/developer/js/source/kmlmp.ts +++ b/developer/js/source/kmlmp.ts @@ -13,7 +13,7 @@ let inputFilename: string; /* Arguments */ program .description('Compiles Keyman lexical model packages') - .version(require('../package.json').version) + .version(KEYMAN_VERSION.VERSION_WITH_TAG) .arguments('') .action(infile => inputFilename = infile) .option('-o, --outFile ', 'where to save the resultant file'); diff --git a/developer/js/source/lexical-model-compiler/model-definitions.ts b/developer/js/source/lexical-model-compiler/model-definitions.ts index a4eca801c7..25f1bc1ad2 100644 --- a/developer/js/source/lexical-model-compiler/model-definitions.ts +++ b/developer/js/source/lexical-model-compiler/model-definitions.ts @@ -49,7 +49,7 @@ export class ModelDefinitions { version: string; applyCasing?: CasingFunction; } = { - version: process.env.npm_package_version + version: KEYMAN_VERSION.VERSION_WITH_TAG }; /** diff --git a/developer/js/tsconfig.json b/developer/js/tsconfig.json index 580cc940b6..c30f748994 100644 --- a/developer/js/tsconfig.json +++ b/developer/js/tsconfig.json @@ -1,6 +1,8 @@ { + "extends": "../../tsconfig-base.json", + "compilerOptions": { - "module": "commonjs", + //"module": "commonjs", "target": "es2017", "moduleResolution": "node", "sourceMap": true, @@ -16,5 +18,11 @@ }, "include": [ "source/**/*.ts" + ], + "references": [ + { "path": "../../common/web/keyman-version" }, + { "path": "../../common/models/types" }, + { "path": "../../common/models/templates" }, + { "path": "../../common/models/wordbreakers" }, ] } diff --git a/package-lock.json b/package-lock.json index 08c2f9f68f..4498311cd6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,7 +30,6 @@ }, "common/core/web/input-processor": { "name": "@keymanapp/input-processor", - "version": "15.0.233", "license": "MIT", "dependencies": { "@keymanapp/keyboard-processor": "*", @@ -53,7 +52,6 @@ }, "common/core/web/keyboard-processor": { "name": "@keymanapp/keyboard-processor", - "version": "15.0.233", "license": "MIT", "dependencies": { "@keymanapp/models-types": "*", @@ -72,7 +70,6 @@ }, "common/core/web/tools/recorder": { "name": "@keymanapp/recorder-core", - "version": "15.0.233", "license": "MIT", "dependencies": { "@keymanapp/keyboard-processor": "*", @@ -87,7 +84,6 @@ }, "common/core/web/tools/sentry-manager": { "name": "@keymanapp/web-sentry-manager", - "version": "15.0.233", "license": "MIT", "dependencies": { "@keymanapp/web-environment": "*", @@ -99,7 +95,6 @@ }, "common/core/web/utils": { "name": "@keymanapp/web-utils", - "version": "15.0.233", "license": "MIT", "devDependencies": { "@keymanapp/resources-gosh": "*", @@ -116,7 +111,6 @@ }, "common/models/templates": { "name": "@keymanapp/models-templates", - "version": "15.0.233", "license": "MIT", "dependencies": { "@keymanapp/models-wordbreakers": "*" @@ -153,7 +147,6 @@ }, "common/models/types": { "name": "@keymanapp/models-types", - "version": "15.0.233", "license": "MIT", "devDependencies": { "typescript": "^4.5.4" @@ -161,7 +154,6 @@ }, "common/models/wordbreakers": { "name": "@keymanapp/models-wordbreakers", - "version": "15.0.233", "license": "MIT", "dependencies": { "@types/node": "^14.0.3" @@ -183,7 +175,6 @@ }, "common/predictive-text": { "name": "@keymanapp/lexical-model-layer", - "version": "15.0.233", "license": "MIT", "dependencies": { "@keymanapp/models-templates": "*", @@ -228,16 +219,31 @@ }, "common/web/es6-shim": { "name": "@keymanapp/es6-shim", - "version": "15.0.230", "license": "MIT", "dependencies": { "es6-shim": "^0.35.5" }, "devDependencies": {} }, + "common/web/keyman-version": { + "name": "@keymanapp/keyman-version", + "hasInstallScript": true, + "license": "MIT", + "devDependencies": { + "@keymanapp/resources-gosh": "*", + "@types/node": "^14.0.4", + "ts-node": "^9.1.1", + "typescript": "^4.5.4" + } + }, + "common/web/keyman-version/node_modules/@types/node": { + "version": "14.18.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.13.tgz", + "integrity": "sha512-Z6/KzgyWOga3pJNS42A+zayjhPbf2zM3hegRQaOPnLOzEi86VV++6FLDWgR1LGrVCRufP/ph2daa3tEa5br1zA==", + "dev": true + }, "common/web/lm-message-types": { "name": "@keymanapp/lm-message-types", - "version": "15.0.233", "license": "MIT", "devDependencies": { "typescript": "^4.5.4" @@ -245,7 +251,6 @@ }, "common/web/lm-worker": { "name": "@keymanapp/lm-worker", - "version": "15.0.233", "license": "MIT", "dependencies": { "@keymanapp/models-templates": "*", @@ -290,7 +295,6 @@ }, "developer/js": { "name": "@keymanapp/lexical-model-compiler", - "version": "15.0.233", "license": "MIT", "dependencies": { "@keymanapp/models-types": "*", @@ -304,6 +308,7 @@ "kmlmp": "dist/kmlmp.js" }, "devDependencies": { + "@keymanapp/keyman-version": "*", "@keymanapp/models-templates": "*", "@keymanapp/models-wordbreakers": "*", "@types/chai": "^4.1.7", @@ -317,7 +322,7 @@ "ts-node": "^9.1.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=16.0.0" } }, "developer/js/node_modules/@types/mocha": { @@ -396,7 +401,6 @@ }, "developer/server": { "name": "@keymanapp/developer-server", - "version": "15.0.233", "license": "MIT", "dependencies": { "@sentry/node": "^6.16.1", @@ -408,6 +412,7 @@ "ws": "^8.3.0" }, "devDependencies": { + "@keymanapp/keyman-version": "*", "@keymanapp/resources-gosh": "*", "@types/chai": "^4.3.0", "@types/express": "^4.17.13", @@ -759,6 +764,10 @@ "resolved": "common/core/web/keyboard-processor", "link": true }, + "node_modules/@keymanapp/keyman-version": { + "resolved": "common/web/keyman-version", + "link": true + }, "node_modules/@keymanapp/lexical-model-compiler": { "resolved": "developer/js", "link": true @@ -6151,7 +6160,6 @@ }, "resources/gosh": { "name": "@keymanapp/resources-gosh", - "version": "15.0.233", "license": "MIT", "bin": { "gosh": "gosh.js" @@ -6159,7 +6167,6 @@ }, "resources/web-environment": { "name": "@keymanapp/web-environment", - "version": "15.0.233", "license": "MIT", "devDependencies": { "@keymanapp/resources-gosh": "*" @@ -6167,7 +6174,6 @@ }, "web": { "name": "keyman", - "version": "15.0.233", "license": "MIT", "dependencies": { "@keymanapp/input-processor": "*", @@ -6233,6 +6239,7 @@ "@keymanapp/developer-server": { "version": "file:developer/server", "requires": { + "@keymanapp/keyman-version": "*", "@keymanapp/resources-gosh": "*", "@sentry/node": "^6.16.1", "@types/chai": "^4.3.0", @@ -6492,9 +6499,27 @@ "typescript": "^4.5.4" } }, + "@keymanapp/keyman-version": { + "version": "file:common/web/keyman-version", + "requires": { + "@keymanapp/resources-gosh": "*", + "@types/node": "^14.0.4", + "ts-node": "^9.1.1", + "typescript": "^4.5.4" + }, + "dependencies": { + "@types/node": { + "version": "14.18.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.13.tgz", + "integrity": "sha512-Z6/KzgyWOga3pJNS42A+zayjhPbf2zM3hegRQaOPnLOzEi86VV++6FLDWgR1LGrVCRufP/ph2daa3tEa5br1zA==", + "dev": true + } + } + }, "@keymanapp/lexical-model-compiler": { "version": "file:developer/js", "requires": { + "@keymanapp/keyman-version": "*", "@keymanapp/models-templates": "*", "@keymanapp/models-types": "*", "@keymanapp/models-wordbreakers": "*", diff --git a/resources/build/version/package.json b/resources/build/version/package.json index 0339502892..50f35eab14 100644 --- a/resources/build/version/package.json +++ b/resources/build/version/package.json @@ -34,6 +34,5 @@ "clean:dist": "rm -rf dist", "clean:lib": "rm -rf lib", "types": "tsc --noEmit" - }, - "version": "1.1.3" + } } diff --git a/resources/gosh/package.json b/resources/gosh/package.json index 24cca16e36..bc70a30cc0 100644 --- a/resources/gosh/package.json +++ b/resources/gosh/package.json @@ -1,6 +1,5 @@ { "name": "@keymanapp/resources-gosh", - "version": "15.0.233", "description": "Good Ol' Shell", "author": "Marc Durdin (https://github.com/mcdurdin)", "contributors": [ diff --git a/resources/web-environment/package.json b/resources/web-environment/package.json index 523ec88089..18efaf9dd3 100644 --- a/resources/web-environment/package.json +++ b/resources/web-environment/package.json @@ -1,6 +1,5 @@ { "name": "@keymanapp/web-environment", - "version": "15.0.233", "description": "A compilation utility for passing select environment variables into our TS builds", "author": "Joshua Horton (https://github.com/jahorton)", "homepage": "https://github.com/keymanapp/keyman", diff --git a/tsconfig-base.json b/tsconfig-base.json index 6ec12831da..0b3abb64c9 100644 --- a/tsconfig-base.json +++ b/tsconfig-base.json @@ -18,6 +18,7 @@ "@keymanapp/models-wordbreakers": ["./common/models/wordbreakers"], "@keymanapp/utils": ["./common/core/web/utils"], "@keymanapp/lm-message-types": ["./common/web/lm-message-types"], + "@keymanapp/keyman-version": ["./common/web/keyman-version"], } } } \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 90873944bb..504c21b15e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -28,6 +28,7 @@ { "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/lm-worker/" }, + { "path": "./common/web/keyman-version/" }, ] } \ No newline at end of file diff --git a/web/package.json b/web/package.json index 235f57f1fd..d618ff49fd 100644 --- a/web/package.json +++ b/web/package.json @@ -1,6 +1,5 @@ { "name": "keyman", - "version": "15.0.233", "description": "Facilitates text input in any language.", "repository": { "type": "git", diff --git a/web/testing/regression-tests/package.json b/web/testing/regression-tests/package.json index 70010ad30e..64e04dc4f6 100644 --- a/web/testing/regression-tests/package.json +++ b/web/testing/regression-tests/package.json @@ -1,6 +1,5 @@ { "name": "regression-tests", - "version": "1.0.0", "description": "Automated regression test suite for KeymanWeb", "main": "index.js", "scripts": { From 575250f1d9b2dd456e45cb6c5fc27d2d7312e890 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Sun, 17 Apr 2022 06:58:24 +1000 Subject: [PATCH 2/3] chore(web): remove unneeded deps --- common/web/keyman-version/package.json | 2 -- common/web/keyman-version/tsconfig.json | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/common/web/keyman-version/package.json b/common/web/keyman-version/package.json index 9514d6e3f8..8b8f27440d 100644 --- a/common/web/keyman-version/package.json +++ b/common/web/keyman-version/package.json @@ -11,9 +11,7 @@ }, "license": "MIT", "devDependencies": { - "ts-node": "^9.1.1", "typescript": "^4.5.4", - "@types/node": "^14.0.4", "@keymanapp/resources-gosh": "*" } } diff --git a/common/web/keyman-version/tsconfig.json b/common/web/keyman-version/tsconfig.json index 1e09c41a0e..4d856ccc80 100644 --- a/common/web/keyman-version/tsconfig.json +++ b/common/web/keyman-version/tsconfig.json @@ -7,7 +7,7 @@ "module": "none", "outFile": "build/index.js", "sourceMap": true, - "lib": ["webworker", "es6"], + "lib": ["es6"], "target": "es5", "downlevelIteration": true, }, From 22c118c4be0a63111b7a77bec41d48ba40094cc1 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Sun, 17 Apr 2022 07:00:11 +1000 Subject: [PATCH 3/3] chore(developer): fixup version refs --- developer/server/build.sh | 7 +++++-- developer/server/package.json | 5 ++--- developer/server/src/environment.ts | 4 ++-- developer/server/tsconfig.json | 5 +++++ 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/developer/server/build.sh b/developer/server/build.sh index bfcd31e6f9..83e9562747 100644 --- a/developer/server/build.sh +++ b/developer/server/build.sh @@ -95,9 +95,12 @@ type npm >/dev/null ||\ if (( install_dependencies )) ; then verify_npm_setup - npm install --production=false + pushd "$KEYMAN_ROOT" > /dev/null + npm ci --production=false + popd > /dev/null # See https://github.com/bubenshchykov/ngrok/issues/254, https://github.com/bubenshchykov/ngrok/pull/255 - rm -f node_modules/ngrok/bin/ngrok.exe + # TODO: this is horrible; is there a way we can avoid this? + rm -f "$KEYMAN_ROOT"/node_modules/ngrok/bin/ngrok.exe fi set_npm_version || fail "Setting version failed." diff --git a/developer/server/package.json b/developer/server/package.json index 84123ef291..1bbc6468b6 100644 --- a/developer/server/package.json +++ b/developer/server/package.json @@ -1,16 +1,14 @@ { "name": "@keymanapp/developer-server", - "version": "15.0.233", "description": "Keyman Developer backend server", "main": "dist/index.js", "scripts": { - "build": "tsc", + "build": "tsc -b", "postbuild": "npx gosh ./postbuild.sh", "prod": "node .", "test": "mocha", "watch": "npm run postbuild && tsc-watch --onSuccess \"node .\" --onFailure \"node .\"" }, - "author": "", "license": "MIT", "dependencies": { "@sentry/node": "^6.16.1", @@ -27,6 +25,7 @@ }, "devDependencies": { "@keymanapp/resources-gosh": "*", + "@keymanapp/keyman-version": "*", "@types/chai": "^4.3.0", "@types/express": "^4.17.13", "@types/mocha": "^9.1.0", diff --git a/developer/server/src/environment.ts b/developer/server/src/environment.ts index 675a72046e..486a870c9d 100644 --- a/developer/server/src/environment.ts +++ b/developer/server/src/environment.ts @@ -1,3 +1,3 @@ -const pjson = require('../package.json'); import { extractVersionData } from './version-data'; -export const environment = extractVersionData(pjson.version); +// TODO: environment should be just KEYMAN_VERSION +export const environment = extractVersionData(KEYMAN_VERSION.VERSION_WITH_TAG); diff --git a/developer/server/tsconfig.json b/developer/server/tsconfig.json index fac5498ef8..84f810564b 100644 --- a/developer/server/tsconfig.json +++ b/developer/server/tsconfig.json @@ -1,4 +1,6 @@ { + "extends": "../../tsconfig-base.json", + "compilerOptions": { "module": "commonjs", "target": "es2017", @@ -16,5 +18,8 @@ }, "include": [ "src/**/*.ts" + ], + "references": [ + { "path": "../../common/web/keyman-version" } ] }