change(web): engine/keyboard-cache => engine/package-cache

This commit is contained in:
Joshua A. Horton 2023-03-20 09:33:16 +07:00
parent de5354b843
commit 3f52cd4e47
35 changed files with 66 additions and 61 deletions

View file

@ -34,7 +34,7 @@ builder_describe "Builds engine modules for Keyman Engine for Web (KMW)." \
":engine/device-detect Subset used for device-detection " \
":engine/dom-utils A common subset of function used for DOM calculations, layout, etc" \
":engine/element-wrappers Subset used to integrate with website elements" \
":engine/keyboard-cache Subset used to collate keyboards and request them from the cloud" \
":engine/package-cache Subset used to collate keyboards and request them from the cloud" \
":engine/main Builds all common code used by KMW's app/-level targets" \
":engine/osk Builds the Web OSK module"
@ -90,9 +90,9 @@ builder_run_child_actions build:engine/paths
# Uses engine/config (also due to resource-path config interface, but for the
# more complete version of that interface)
builder_run_child_actions build:engine/keyboard-cache
builder_run_child_actions build:engine/package-cache
# Uses engine/paths, engine/device-detect, engine/keyboard-cache, & engine/osk
# Uses engine/paths, engine/device-detect, engine/package-cache, & engine/osk
builder_run_child_actions build:engine/main
# Uses all but engine/element-wrappers

View file

@ -26,30 +26,30 @@
"types": "./build/engine/element-wrappers/lib/index.d.ts",
"import": "./build/engine/element-wrappers/lib/index.mjs"
},
"./engine/keyboard-cache": {
"types": "./build/engine/keyboard-cache/obj/index.d.ts",
"import": "./build/engine/keyboard-cache/obj/index.js",
"require": "./build/engine/keyboard-cache/obj/index.js"
"./engine/package-cache": {
"types": "./build/engine/package-cache/obj/index.d.ts",
"import": "./build/engine/package-cache/obj/index.js",
"require": "./build/engine/package-cache/obj/index.js"
},
"./engine/keyboard-cache/lib": {
"types": "./build/engine/keyboard-cache/lib/index.d.ts",
"import": "./build/engine/keyboard-cache/lib/index.mjs"
"./engine/package-cache/lib": {
"types": "./build/engine/package-cache/lib/index.d.ts",
"import": "./build/engine/package-cache/lib/index.mjs"
},
"./engine/keyboard-cache/dom-requester": {
"types": "./build/engine/keyboard-cache/obj/domCloudRequester.d.ts",
"import": "./build/engine/keyboard-cache/obj/domCloudRequester.js"
"./engine/package-cache/dom-requester": {
"types": "./build/engine/package-cache/obj/domCloudRequester.d.ts",
"import": "./build/engine/package-cache/obj/domCloudRequester.js"
},
"./engine/keyboard-cache/dom-requester/lib": {
"types": "./build/engine/keyboard-cache/lib/index.d.ts",
"import": "./build/engine/keyboard-cache/lib/dom-cloud-requester.mjs"
"./engine/package-cache/dom-requester/lib": {
"types": "./build/engine/package-cache/lib/index.d.ts",
"import": "./build/engine/package-cache/lib/dom-cloud-requester.mjs"
},
"./engine/keyboard-cache/node-requester": {
"types": "./build/engine/keyboard-cache/obj/nodeCloudRequester.d.ts",
"import": "./build/engine/keyboard-cache/obj/nodeCloudRequester.js"
"./engine/package-cache/node-requester": {
"types": "./build/engine/package-cache/obj/nodeCloudRequester.d.ts",
"import": "./build/engine/package-cache/obj/nodeCloudRequester.js"
},
"./engine/keyboard-cache/node-requester/lib": {
"types": "./build/engine/keyboard-cache/lib/index.d.ts",
"import": "./build/engine/keyboard-cache/lib/node-cloud-requester.mjs"
"./engine/package-cache/node-requester/lib": {
"types": "./build/engine/package-cache/lib/index.d.ts",
"import": "./build/engine/package-cache/lib/node-cloud-requester.mjs"
},
"./engine/main": {
"types": "./build/engine/main/obj/index.d.ts",

View file

@ -25,7 +25,7 @@ builder_describe "Builds the Keyman Engine for Web's website-integrating version
"@/common/web/input-processor build" \
"@/web/src/engine/device-detect build" \
"@/web/src/engine/paths build" \
"@/web/src/engine/keyboard-cache build" \
"@/web/src/engine/package-cache build" \
"@/web/src/engine/osk build" \
"@/web/src/engine/element-wrappers build" \
"@/web/src/engine/main build" \

View file

@ -1,5 +1,5 @@
import { type Keyboard, Mock, OutputTarget } from '@keymanapp/keyboard-processor';
import { type KeyboardStub } from 'keyman/engine/keyboard-cache';
import { type KeyboardStub } from 'keyman/engine/package-cache';
import {
ContextManager as ContextManagerBase,
type KeyboardInterface

View file

@ -1,5 +1,5 @@
import { KeyboardKeymanGlobal } from '@keymanapp/keyboard-processor';
import { StubAndKeyboardCache } from 'keyman/engine/keyboard-cache';
import { StubAndKeyboardCache } from 'keyman/engine/package-cache';
import { type OutputTarget } from 'keyman/engine/element-wrappers';
import { FloatingOSKView, OSKView } from 'keyman/engine/osk';
import { KeyboardInterface as KeyboardInterfaceBase } from 'keyman/engine/main';

View file

@ -25,7 +25,7 @@ builder_describe "Builds the Keyman Engine for Web's puppetable version designed
"@/common/web/input-processor build" \
"@/web/src/engine/device-detect build" \
"@/web/src/engine/paths build" \
"@/web/src/engine/keyboard-cache build" \
"@/web/src/engine/package-cache build" \
"@/web/src/engine/osk build" \
"@/web/src/engine/main build" \
"clean" \

View file

@ -1,5 +1,5 @@
import { type Keyboard, Mock } from '@keymanapp/keyboard-processor';
import { type KeyboardStub } from 'keyman/engine/keyboard-cache';
import { type KeyboardStub } from 'keyman/engine/package-cache';
import { ContextManagerBase, ContextManagerConfiguration } from 'keyman/engine/main';
import { WebviewConfiguration } from './configuration.js';

View file

@ -1,7 +1,7 @@
import { DeviceSpec } from '@keymanapp/keyboard-processor'
import { KeymanEngine as KeymanEngineBase } from 'keyman/engine/main';
import { AnchoredOSKView, ViewConfiguration, StaticActivator } from 'keyman/engine/osk';
import { toPrefixedKeyboardId, toUnprefixedKeyboardId } from 'keyman/engine/keyboard-cache';
import { toPrefixedKeyboardId, toUnprefixedKeyboardId } from 'keyman/engine/package-cache';
import { WebviewConfiguration, WebviewInitOptionDefaults, WebviewInitOptionSpec } from './configuration.js';
import ContextManager from './contextManager.js';

View file

@ -25,7 +25,7 @@ builder_describe "Builds the Keyman Engine for Web's common top-level base class
"@/common/web/input-processor build" \
"@/web/src/engine/paths build" \
"@/web/src/engine/device-detect build" \
"@/web/src/engine/keyboard-cache build" \
"@/web/src/engine/package-cache build" \
"@/web/src/engine/osk build" \
"clean" \
"configure" \

View file

@ -1,6 +1,6 @@
import EventEmitter from 'eventemitter3';
import { type Keyboard, type KeyboardInterface, type OutputTarget } from '@keymanapp/keyboard-processor';
import { type KeyboardStub } from 'keyman/engine/keyboard-cache';
import { type KeyboardStub } from 'keyman/engine/package-cache';
import { PredictionContext } from '@keymanapp/input-processor';
interface EventMap {

View file

@ -1,7 +1,7 @@
import { DeviceSpec, ManagedPromise, physicalKeyDeviceAlias, SpacebarText } from "@keymanapp/keyboard-processor";
import { PathConfiguration, PathOptionDefaults, PathOptionSpec } from "keyman/engine/paths";
import { Device } from "keyman/engine/device-detect";
import { KeyboardStub } from "keyman/engine/keyboard-cache";
import { KeyboardStub } from "keyman/engine/package-cache";
export class EngineConfiguration {
// The app/webview path replaces this during init, but we expect to have something set for this

View file

@ -3,7 +3,7 @@ import {
KeyboardInterface as KeyboardInterfaceBase,
KeyboardKeymanGlobal,
} from "@keymanapp/keyboard-processor";
import { KeyboardStub, RawKeyboardStub, StubAndKeyboardCache } from 'keyman/engine/keyboard-cache';
import { KeyboardStub, RawKeyboardStub, StubAndKeyboardCache } from 'keyman/engine/package-cache';
import { ContextManagerBase } from './contextManagerBase.js';
import { VariableStoreCookieSerializer } from "./variableStoreCookieSerializer.js";

View file

@ -2,7 +2,7 @@ import { DefaultRules, KeyboardKeymanGlobal, ProcessorInitOptions } from "@keyma
import { DOMKeyboardLoader as KeyboardLoader } from "@keymanapp/keyboard-processor/dom-keyboard-loader";
import { InputProcessor, PredictionContext } from "@keymanapp/input-processor";
import { OSKView } from "keyman/engine/osk";
import { KeyboardRequisitioner, ModelCache, ModelSpec } from "keyman/engine/keyboard-cache";
import { KeyboardRequisitioner, ModelCache, ModelSpec } from "keyman/engine/package-cache";
import { EngineConfiguration, InitOptionSpec } from "./engineConfiguration.js";
import KeyboardInterface from "./keyboardInterface.js";
@ -10,7 +10,7 @@ import { ContextManagerBase } from "./contextManagerBase.js";
import { KeyEventHandler } from './keyEventSource.interface.js';
import HardKeyboardBase from "./hardKeyboard.js";
import { LegacyAPIEventEngine } from "./legacyAPIEvents.js";
import DOMCloudRequester from "keyman/engine/keyboard-cache/dom-requester";
import DOMCloudRequester from "keyman/engine/package-cache/dom-requester";
export default class KeymanEngine<ContextManager extends ContextManagerBase, HardKeyboard extends HardKeyboardBase> implements KeyboardKeymanGlobal {
readonly config: EngineConfiguration;

View file

@ -0,0 +1,5 @@
As this module's purpose matches that of package installation for all other Keyman platforms,
it's been given the "packages" label.
While Keyman Engine for Web does not yet support loading of keyboards and models from Keyman
Package files (.kmp), this module supports collation of the files that would be contained therein.

View file

@ -6,9 +6,9 @@ await esbuild.build({
format: "esm",
nodePaths: ['../../../../node_modules'],
entryPoints: {
'index': '../../../build/engine/keyboard-cache/obj/index.js',
'index': '../../../build/engine/package-cache/obj/index.js',
},
outdir: '../../../build/engine/keyboard-cache/lib/',
outdir: '../../../build/engine/package-cache/lib/',
outExtension: { '.js': '.mjs' },
tsconfig: './tsconfig.json',
target: "es5"
@ -20,9 +20,9 @@ await esbuild.build({
format: "esm",
nodePaths: ['../../../../node_modules'],
entryPoints: {
'dom-cloud-requester': '../../../build/engine/keyboard-cache/obj/domCloudRequester.js',
'dom-cloud-requester': '../../../build/engine/package-cache/obj/domCloudRequester.js',
},
outdir: '../../../build/engine/keyboard-cache/lib/',
outdir: '../../../build/engine/package-cache/lib/',
outExtension: { '.js': '.mjs' },
tsconfig: './tsconfig.json',
target: "es5"
@ -34,9 +34,9 @@ await esbuild.build({
format: "esm",
nodePaths: ['../../../../node_modules'],
entryPoints: {
'node-cloud-requester': '../../../build/engine/keyboard-cache/obj/nodeCloudRequester.js',
'node-cloud-requester': '../../../build/engine/package-cache/obj/nodeCloudRequester.js',
},
outdir: '../../../build/engine/keyboard-cache/lib/',
outdir: '../../../build/engine/package-cache/lib/',
outExtension: { '.js': '.mjs' },
platform: 'node',
tsconfig: './tsconfig.json',

View file

@ -16,13 +16,13 @@ THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
cd "$THIS_SCRIPT_PATH"
# Imports common Web build-script definitions & functions
SUBPROJECT_NAME=engine/keyboard-cache
SUBPROJECT_NAME=engine/package-cache
. "$KEYMAN_ROOT/web/common.inc.sh"
# ################################ Main script ################################
builder_describe "Builds keyboard cloud-querying & caching modules used by the Keyman Engine for Web (KMW)." \
"@/common/web/keyboard-processor build" \
builder_describe "Builds Keyman Engine modules for keyboard cloud-querying & caching + model caching." \
"@/common/web/input-processor build" \
"@/web/src/engine/paths" \
"clean" \
"configure" \
@ -59,7 +59,7 @@ fi
if builder_start_action test; then
# TODO: CI vs manual: how the tests are reported.
mocha --recursive "${KEYMAN_ROOT}/web/src/test/auto/headless/keyboard-cache"
mocha --recursive "${KEYMAN_ROOT}/web/src/test/auto/headless/packages"
# TODO: DOM tests
builder_finish_action success test

View file

@ -10,8 +10,8 @@
"sourceMap": true,
"target": "es5",
"baseUrl": "./",
"outDir": "../../../build/engine/keyboard-cache/obj/",
"tsBuildInfoFile": "../../../build/engine/keyboard-cache/obj/tsconfig.tsbuildinfo",
"outDir": "../../../build/engine/package-cache/obj/",
"tsBuildInfoFile": "../../../build/engine/package-cache/obj/tsconfig.tsbuildinfo",
"rootDir": "./src"
},

View file

@ -1,9 +1,9 @@
const assert = chai.assert;
import sinon from '/node_modules/sinon/pkg/sinon-esm.js';
import { CloudQueryEngine } from '/@keymanapp/keyman/build/engine/keyboard-cache/lib/index.mjs';
import { CloudQueryEngine } from '/@keymanapp/keyman/build/engine/package-cache/lib/index.mjs';
import { PathConfiguration } from '/@keymanapp/keyman/build/engine/paths/lib/index.mjs';
import DOMCloudRequester from '/@keymanapp/keyman/build/engine/keyboard-cache/lib/dom-cloud-requester.mjs';
import DOMCloudRequester from '/@keymanapp/keyman/build/engine/package-cache/lib/dom-cloud-requester.mjs';
const pathConfig = new PathConfiguration({
root: '',

View file

@ -1,7 +1,7 @@
const assert = chai.assert;
import sinon from '/node_modules/sinon/pkg/sinon-esm.js';
import DOMCloudRequester from '/@keymanapp/keyman/build/engine/keyboard-cache/lib/dom-cloud-requester.mjs';
import DOMCloudRequester from '/@keymanapp/keyman/build/engine/package-cache/lib/dom-cloud-requester.mjs';
describe("Mocked cloud query results ('canary' testing)", () => {
function performMockedRequest(mockedResultsPath) {

View file

@ -4,8 +4,8 @@ import sinon from '/node_modules/sinon/pkg/sinon-esm.js';
import { KeyboardHarness, MinimalKeymanGlobal } from '/@keymanapp/keyboard-processor/build/lib/index.mjs';
import { DOMKeyboardLoader } from '/@keymanapp/keyboard-processor/build/lib/dom-keyboard-loader.mjs';
import { PathConfiguration } from '/@keymanapp/keyman/build/engine/paths/lib/index.mjs';
import { KeyboardRequisitioner } from '/@keymanapp/keyman/build/engine/keyboard-cache/lib/index.mjs';
import DOMCloudRequester from '/@keymanapp/keyman/build/engine/keyboard-cache/lib/dom-cloud-requester.mjs';
import { KeyboardRequisitioner } from '/@keymanapp/keyman/build/engine/package-cache/lib/index.mjs';
import DOMCloudRequester from '/@keymanapp/keyman/build/engine/package-cache/lib/dom-cloud-requester.mjs';
const pathConfig = new PathConfiguration({
root: '',
@ -14,7 +14,7 @@ const pathConfig = new PathConfiguration({
fonts: '',
// The primary / top-level module here is the keyboard-cache bundle.
// So, we set up our path config based upon that module for verification purposes.
}, 'http://localhost:9876/@keymanapp/keyman/build/engine/keyboard-cache/lib'); // TODO: set up the current path like actual KMW does it.
}, 'http://localhost:9876/@keymanapp/keyman/build/engine/package-cache/lib'); // TODO: set up the current path like actual KMW does it.
/**
* Performs mocking setup to facilitate unit testing for the `CloudQueryEngine` class.

View file

@ -2,9 +2,9 @@ import { assert } from 'chai';
import sinon from 'sinon';
import { ManagedPromise } from '@keymanapp/web-utils';
import { CloudQueryEngine, StubAndKeyboardCache, toPrefixedKeyboardId as prefixed } from 'keyman/engine/keyboard-cache';
import { CloudQueryEngine, StubAndKeyboardCache, toPrefixedKeyboardId as prefixed } from 'keyman/engine/package-cache';
import { PathConfiguration } from 'keyman/engine/paths';
import NodeCloudRequester from 'keyman/engine/keyboard-cache/node-requester';
import NodeCloudRequester from 'keyman/engine/package-cache/node-requester';
import path from 'path';
import { fileURLToPath } from 'url';

View file

@ -7,9 +7,9 @@ import { NodeKeyboardLoader } from '@keymanapp/keyboard-processor/node-keyboard-
import {
KeyboardRequisitioner,
toPrefixedKeyboardId as prefixed
} from 'keyman/engine/keyboard-cache';
} from 'keyman/engine/package-cache';
import { PathConfiguration } from 'keyman/engine/paths';
import NodeCloudRequester from 'keyman/engine/keyboard-cache/node-requester';
import NodeCloudRequester from 'keyman/engine/package-cache/node-requester';
import path from 'path';
import { fileURLToPath } from 'url';
@ -32,7 +32,7 @@ const pathConfig = new PathConfiguration({
resources: '',
keyboards: `file:///${resolvedResourcePackage}/../`, // the one part NEEDED for unit tests below.
fonts: '',
}, `file:///${path.dirname(require.resolve('keyman/engine/keyboard-cache'))}`);
}, `file:///${path.dirname(require.resolve('keyman/engine/package-cache'))}`);
/**
* Performs mocking setup to facilitate unit testing for the `CloudQueryEngine` class.

View file

@ -1,8 +1,8 @@
import { assert } from 'chai';
import sinon from 'sinon';
import { KeyboardStub } from 'keyman/engine/keyboard-cache';
import NodeCloudRequester from 'keyman/engine/keyboard-cache/node-requester';
import { KeyboardStub } from 'keyman/engine/package-cache';
import NodeCloudRequester from 'keyman/engine/package-cache/node-requester';
import path from 'path';
import { fileURLToPath } from 'url';

View file

@ -1,7 +1,7 @@
import { assert } from 'chai';
import sinon from 'sinon';
import NodeCloudRequester from 'keyman/engine/keyboard-cache/node-requester';
import NodeCloudRequester from 'keyman/engine/package-cache/node-requester';
import path from 'path';
import { fileURLToPath } from 'url';

View file

@ -2,7 +2,7 @@ import { assert } from 'chai';
import sinon from 'sinon';
import fs from 'fs';
import { KeyboardStub, StubAndKeyboardCache } from 'keyman/engine/keyboard-cache';
import { KeyboardStub, StubAndKeyboardCache } from 'keyman/engine/package-cache';
import { NodeKeyboardLoader } from '@keymanapp/keyboard-processor/node-keyboard-loader';
import { KeyboardHarness, MinimalKeymanGlobal } from '@keymanapp/keyboard-processor';