mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-08 01:45:32 +00:00
change(web): engine/keyboard-cache => engine/package-cache
This commit is contained in:
parent
de5354b843
commit
3f52cd4e47
35 changed files with 66 additions and 61 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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" \
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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" \
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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" \
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
5
web/src/engine/package-cache/README.md
Normal file
5
web/src/engine/package-cache/README.md
Normal 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.
|
||||
|
|
@ -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',
|
||||
|
|
@ -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
|
||||
|
|
@ -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"
|
||||
},
|
||||
|
||||
|
|
@ -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: '',
|
||||
|
|
@ -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) {
|
||||
|
|
@ -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.
|
||||
|
|
@ -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';
|
||||
|
|
@ -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.
|
||||
|
|
@ -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';
|
||||
|
|
@ -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';
|
||||
|
|
@ -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';
|
||||
Loading…
Add table
Reference in a new issue