Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion web/src/app/browser/src/defaultBrowserRules.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {

import { ContextManager } from './contextManager.js';

export default class DefaultBrowserRules extends DefaultRules {
export class DefaultBrowserRules extends DefaultRules {
private contextManager: ContextManager;

constructor(contextManager: ContextManager) {
Expand Down
2 changes: 1 addition & 1 deletion web/src/app/browser/src/keymanEngine.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import KeyboardObject = KeymanWebKeyboard.KeyboardObject;
import * as views from './viewsAnchorpoint.js';
import { BrowserConfiguration, BrowserInitOptionDefaults, BrowserInitOptionSpec } from './configuration.js';
import { ContextManager } from './contextManager.js';
import DefaultBrowserRules from './defaultBrowserRules.js';
import { DefaultBrowserRules } from './defaultBrowserRules.js';
import { HardwareEventKeyboard } from './hardwareEventKeyboard.js';
import { FocusStateAPIObject } from './context/focusAssistant.js';
import { PageIntegrationHandlers } from './context/pageIntegrationHandlers.js';
Expand Down
2 changes: 1 addition & 1 deletion web/src/app/webview/src/keymanEngine.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { toPrefixedKeyboardId, toUnprefixedKeyboardId } from 'keyman/engine/keyb

import { WebviewConfiguration, WebviewInitOptionDefaults, WebviewInitOptionSpec } from './configuration.js';
import { ContextManager, HostTextStore } from './contextManager.js';
import PassthroughKeyboard from './passthroughKeyboard.js';
import { PassthroughKeyboard } from './passthroughKeyboard.js';
import { buildEmbeddedGestureConfig, setupEmbeddedListeners } from './oskConfiguration.js';
import { WorkerFactory } from '@keymanapp/lexical-model-layer';

Expand Down
2 changes: 1 addition & 1 deletion web/src/app/webview/src/passthroughKeyboard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { DeviceSpec, Keyboard, KeyEvent, ManagedPromise } from 'keyman/engine/ke

import { HardKeyboardBase, processForMnemonicsAndLegacy } from 'keyman/engine/main';

export default class PassthroughKeyboard extends HardKeyboardBase {
export class PassthroughKeyboard extends HardKeyboardBase {
readonly baseDevice: DeviceSpec;
public activeKeyboard: Keyboard;

Expand Down
2 changes: 1 addition & 1 deletion web/src/common/web-utils/src/deepCopy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* Description Makes an actual copy (not a reference) of an object, copying simple members,
* arrays and member objects but not functions, so use with care!
*/
export default function deepCopy<T extends ({[key: string | number | symbol]: any} | Array<any>)>(p:T): T {
export function deepCopy<T extends ({[key: string | number | symbol]: any} | Array<any>)>(p:T): T {
// typeof undefined == 'undefined', ![] == false, !{} == false
if(typeof p != 'object' || !p) {
return p;
Expand Down
2 changes: 0 additions & 2 deletions web/src/common/web-utils/src/deviceSpec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,5 +80,3 @@ export namespace DeviceSpec {
export function physicalKeyDeviceAlias(device: DeviceSpec) {
return new DeviceSpec(device.browser, DeviceSpec.FormFactor.Desktop, device.OS, false);
}

export default DeviceSpec;
2 changes: 1 addition & 1 deletion web/src/common/web-utils/src/globalObject.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* - In WebWorkers, returns `self`.
* - In Node, returns `global`.
*/
export default function getGlobalObject(): typeof globalThis {
export function globalObject(): typeof globalThis {
// Evergreen browsers have started defining 'globalThis'.
// Refer to https://devblogs.microsoft.com/typescript/announcing-typescript-3-4/#type-checking-for-globalthis
// and its referenced polyfill. Said polyfill is very complex, so we opt for this far leaner variant.
Expand Down
14 changes: 7 additions & 7 deletions web/src/common/web-utils/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// References all utility includes from a single file, making import/export simple.

export { default as deepCopy } from "./deepCopy.js";
export { deepCopy } from "./deepCopy.js";

export { default as DeviceSpec, physicalKeyDeviceAlias } from "./deviceSpec.js";
export { DeviceSpec, physicalKeyDeviceAlias } from "./deviceSpec.js";

/*
// An example valid use, post-import:
Expand All @@ -12,16 +12,16 @@ export { default as DeviceSpec, physicalKeyDeviceAlias } from "./deviceSpec.js";
true);
*/

export { default as Version } from "./version.js";
export { Version } from "./version.js";

export { default as globalObject } from "./globalObject.js";
export { globalObject } from "./globalObject.js";

export * as KMWString from './kmwstring.js';

export { default as ManagedPromise } from "./managedPromise.js";
export { default as TimeoutPromise, timedPromise } from "./timeoutPromise.js";
export { ManagedPromise } from "./managedPromise.js";
export { TimeoutPromise, timedPromise } from "./timeoutPromise.js";

export { default as PriorityQueue, QueueComparator } from "./priority-queue.js"
export { PriorityQueue, QueueComparator } from "./priority-queue.js"

export { isEmptyTransform } from './isEmptyTransform.js';

Expand Down
2 changes: 1 addition & 1 deletion web/src/common/web-utils/src/managedPromise.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
type ResolveSignature<Type> = (value: Type | PromiseLike<Type>) => void;
type RejectSignature = (reason?: any) => void;

export default class ManagedPromise<Type = void> {
export class ManagedPromise<Type = void> {
/**
* Calling this function will fulfill the Promise represented by this class.
*/
Expand Down
2 changes: 1 addition & 1 deletion web/src/common/web-utils/src/priority-queue.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
*/
export type QueueComparator<Type> = (a: Type, b: Type) => number;

export default class PriorityQueue<Type> {
export class PriorityQueue<Type> {

private comparator: QueueComparator<Type>;
private heap: Type[];
Expand Down
4 changes: 2 additions & 2 deletions web/src/common/web-utils/src/timeoutPromise.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import ManagedPromise from "./managedPromise.js";
import { ManagedPromise } from "./managedPromise.js";

/**
* This class represents a cancelable timeout, wrapped in Promise form.
Expand All @@ -7,7 +7,7 @@ import ManagedPromise from "./managedPromise.js";
* `reject` is called earlier. Call `.resolve(false)` for early cancellation
* or `.resolve(true)` to cancel the timer while resolving the Promise early.
*/
export default class TimeoutPromise extends ManagedPromise<Boolean> {
export class TimeoutPromise extends ManagedPromise<Boolean> {
private timerHandle: number | NodeJS.Timeout;
constructor(timeoutInMillis: number) {
// Helps marshal the internal timer handle to its member field despite being
Expand Down
2 changes: 1 addition & 1 deletion web/src/common/web-utils/src/version.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import KEYMAN_VERSION from "@keymanapp/keyman-version";

// Dotted-decimal version
export default class Version {
export class Version {
public static readonly CURRENT = new Version(KEYMAN_VERSION.VERSION_RELEASE);

// Represents a default version value for keyboards compiled before this was compiled into keyboards.
Expand Down
4 changes: 2 additions & 2 deletions web/src/engine/predictive-text/templates/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@ export {
SENTINEL_CODE_UNIT, applyTransform, buildMergedTransform, isHighSurrogate, isLowSurrogate, isSentinel,
transformToSuggestion, defaultApplyCasing
} from "./common.js";
export { default as QuoteBehavior } from "./quote-behavior.js";
export { QuoteBehavior } from "./quote-behavior.js";
export { getLastPreCaretToken, Token, Tokenization, tokenize, wordbreak } from "./tokenization.js";
export { default as TrieModel, TrieModelOptions } from "./trie-model.js";
export { TrieModel, TrieModelOptions } from "./trie-model.js";
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,3 @@ export namespace QuoteBehavior {
}
}
}

export default QuoteBehavior;
2 changes: 1 addition & 1 deletion web/src/engine/predictive-text/templates/src/trie-model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ export class Traversal implements LexiconTraversal {
* prefix searches within words, however they are not very good
* at predicting the next word.
*/
export default class TrieModel implements LexicalModel {
export class TrieModel implements LexicalModel {
configuration?: Configuration;
private _trie: Trie;
readonly breakWords: WordBreakingFunction;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { LexicalModelTypes } from '@keymanapp/common-types';
*
* @param phrase
*/
export default function ascii(phrase: string): LexicalModelTypes.Span[] {
export function ascii(phrase: string): LexicalModelTypes.Span[] {
let matchWord = /[A-Za-z0-9']+/g;
let words: LexicalModelTypes.Span[] = [];
let match: RegExpExecArray | null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export interface DefaultWordBreakerOptions {
* @see http://unicode.org/reports/tr29/#Word_Boundaries
* @see https://github.com/eddieantonio/unicode-default-word-boundary/tree/v12.0.0
*/
export default function default_(text: string, options?: DefaultWordBreakerOptions): LexicalModelTypes.Span[] {
export function default_(text: string, options?: DefaultWordBreakerOptions): LexicalModelTypes.Span[] {
let boundaries = findBoundaries(text, options);
if (boundaries.length == 0) {
return [];
Expand Down
6 changes: 3 additions & 3 deletions web/src/engine/predictive-text/wordbreakers/src/main/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import placeholder from "./placeholder.js";
import ascii from "./ascii.js";
import default_ from "./default/index.js";
import { placeholder } from "./placeholder.js";
import { ascii } from "./ascii.js";
import { default_ } from "./default/index.js";

export { placeholder, ascii, default_ as default, default_ as defaultWordbreaker };
export { type BreakerContext } from "./default/index.js";
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { LexicalModelTypes } from '@keymanapp/common-types';
* @param phrase The phrase in which to break words.
* @deprecated Use a word breaker tailored to your language instead!
*/
export default function placeholder(phrase: string): LexicalModelTypes.Span[] {
export function placeholder(phrase: string): LexicalModelTypes.Span[] {
let nextStart = 0;
return phrase.split(/\s+/).map(utterance => {
// XXX: The indices are NOT accurate to the original phrase!
Expand Down
4 changes: 2 additions & 2 deletions web/src/engine/predictive-text/worker-main/src/lmlayer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import Distribution = LexicalModelTypes.Distribution;
import Reversion = LexicalModelTypes.Reversion;
import Suggestion = LexicalModelTypes.Suggestion;
import Transform = LexicalModelTypes.Transform;
import PromiseStore from "./promise-store.js";
import { PromiseStore } from "./promise-store.js";
import { OutgoingMessage } from '@keymanapp/lm-message-types';

/// <reference types="worker-interface.d.ts" />
Expand All @@ -53,7 +53,7 @@ import { OutgoingMessage } from '@keymanapp/lm-message-types';
* The top-level LMLayer will automatically starts up its own Web Worker.
*/

export default class LMLayer {
export class LMLayer {
/**
* The underlying worker instance. By default, this is the LMLayerWorker.
*/
Expand Down
6 changes: 3 additions & 3 deletions web/src/engine/predictive-text/worker-main/src/node/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
export { default as LMLayer } from '../lmlayer.js';
export { default as Worker } from './worker.js';
export { default as SourcemappedWorker } from './sourcemappedWorker.js';
export { LMLayer } from '../lmlayer.js';
export { Worker } from './worker.js';
export { SourcemappedWorker } from './sourcemappedWorker.js';

export interface WorkerFactory {
constructInstance(): Worker
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ self.importScripts = importScripts;
* cross-platform Worker support in the future, it may be wise to swap to use of
* that package.
*/
export default class MappedWorker extends worker.Worker implements Worker {
export class MappedWorker extends worker.Worker implements Worker {
constructor(scriptStr: string) {
const concatenatedScript = `
${nodeWorkerToWebWorkerMappingSource}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import MappedWorker from "./mappedWorker.js";
import unwrap from '../unwrap.js';
import { MappedWorker } from "./mappedWorker.js";
import { unwrap } from '../unwrap.js';

import { LMLayerWorkerCode, LMLayerWorkerSourcemapComment } from "@keymanapp/lm-worker/worker-main.wrapped.js";

export default class SourcemappedWorker {
export class SourcemappedWorker {
static constructInstance(): Worker {
let scriptStr = unwrap(LMLayerWorkerCode);

Expand Down
6 changes: 3 additions & 3 deletions web/src/engine/predictive-text/worker-main/src/node/worker.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import MappedWorker from "./mappedWorker.js";
import unwrap from '../unwrap.js';
import { MappedWorker } from "./mappedWorker.js";
import { unwrap } from '../unwrap.js';

import { LMLayerWorkerCode, LMLayerWorkerSourcemapComment } from "@keymanapp/lm-worker/worker-main.wrapped.min.js";

export default class Worker {
export class Worker {
static constructInstance(): Worker {
let scriptStr = unwrap(LMLayerWorkerCode);
const srcMapUrlIndex = scriptStr.indexOf("//# sourceMappingURL")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ interface PromiseCallbacks<T> {
*
* <T> is the type of resolved value (value yielded successfully by promise).
*/
export default class PromiseStore<T> {
export class PromiseStore<T> {
// IE11 offers partial support for new Map().
// Assume only .get(), .set(), .has(), .delete(), and .size work.
// See: http://kangax.github.io/compat-table/es6/#test-Map
Expand Down
2 changes: 1 addition & 1 deletion web/src/engine/predictive-text/worker-main/src/unwrap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
*
* @param fn The function whose body will be returned.
*/
export default function unwrap(encodedSrc: string): string {
export function unwrap(encodedSrc: string): string {
// There used to be more to this, but now it's a pretty simple passthrough!
return encodedSrc;
}
8 changes: 4 additions & 4 deletions web/src/engine/predictive-text/worker-main/src/web/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
export { default as LMLayer } from '../lmlayer.js';
export { default as Worker } from './worker.js';
export { default as SourcemappedWorker } from './sourcemappedWorker.js';
export { LMLayer } from '../lmlayer.js';
export { DefaultWorker as Worker } from './worker.js'; // TODO: eliminate rename
export { SourcemappedWorker } from './sourcemappedWorker.js';

export interface WorkerFactory {
constructInstance(): Worker
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import unwrap from '../unwrap.js';
import { unwrap } from '../unwrap.js';
import { LMLayerWorkerCode, LMLayerWorkerSourcemapComment } from "@keymanapp/lm-worker/worker-main.wrapped.js";

export default class SourcemappedWorker {
export class SourcemappedWorker {
// the only difference to DefaultWorker is that this class uses
// the unminified LM* blobs

Expand Down
6 changes: 3 additions & 3 deletions web/src/engine/predictive-text/worker-main/src/web/worker.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import unwrap from '../unwrap.js';
import { unwrap } from '../unwrap.js';
import { LMLayerWorkerCode, LMLayerWorkerSourcemapComment } from "@keymanapp/lm-worker/worker-main.wrapped.min.js";

export default class DefaultWorker {
export class DefaultWorker {
static constructInstance(): Worker {
return new Worker(this.asBlobURI(LMLayerWorkerCode));
}
Expand All @@ -28,7 +28,7 @@ export default class DefaultWorker {
// if(false) {
code += '\n' + LMLayerWorkerSourcemapComment;
// }
let blob = new Blob([code], { type: 'text/javascript' });
const blob = new Blob([code], { type: 'text/javascript' });
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sneaking in a different change 😉 I'll allow it

return URL.createObjectURL(blob);
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { assert } from 'chai';
import sinon from 'sinon';

import PromiseStore from '#./promise-store.js';
import { PromiseStore } from '#./promise-store.js';
import { randomToken } from '@keymanapp/common-test-resources/model-helpers.mjs';

describe('PromiseStore', function () {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { KMWString } from 'keyman/common/web-utils';

import { ClassicalDistanceCalculation, EditOperation } from './classical-calculation.js';
import { SearchSpace } from './distance-modeler.js';
import TransformUtils from '../transformUtils.js';
import { TransformUtils } from '../transformUtils.js';
import { determineModelTokenizer } from '../model-helpers.js';
import { tokenizeTransform, tokenizeTransformDistribution } from './transform-tokenization.js';
import { LexicalModelTypes } from '@keymanapp/common-types';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
export * from './classical-calculation.js';
export * from './context-tracker.js';
export * from './distance-modeler.js';
export * from './execution-timer.js';
export * from './transform-tokenization.js';
export { type EditOperation, ClassicalDistanceCalculation } from './classical-calculation.js';
export {
getEditPathLastMatch, TrackedContextSuggestion,
TrackedContextToken, TrackedContextState, ContextTracker
} from './context-tracker.js';
export {
type TraversableToken, QUEUE_NODE_COMPARATOR, PartialSearchEdge,
SearchNode, SearchResult, SearchSpace
} from './distance-modeler.js';
export {
STANDARD_TIME_BETWEEN_DEFERS, ExecutionBucket,
ExecutionSpan, ExecutionTimer
} from './execution-timer.js';
export { tokenizeTransform, tokenizeTransformDistribution } from './transform-tokenization.js';
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ import * as correction from './correction/index.js';
import * as wordBreakers from '@keymanapp/models-wordbreakers';
import { KMWString } from "keyman/common/web-utils";

import ModelCompositor from './model-compositor.js';
import { ModelCompositor } from './model-compositor.js';
import { ImportScripts, IncomingMessage, LMLayerWorkerState, LoadMessage, ModelEval, ModelFile, ModelSourceSpec, PostMessage } from './worker-interfaces.js';
import { LexicalModelTypes } from '@keymanapp/common-types';
import Capabilities = LexicalModelTypes.Capabilities;
Expand Down Expand Up @@ -66,7 +66,7 @@ import { OutgoingMessageKind } from '@keymanapp/lm-message-types';
* The model and the configuration are ONLY relevant in the `ready` state;
* as such, they are NOT direct properties of the LMLayerWorker.
*/
export default class LMLayerWorker {
export class LMLayerWorker {
/**
* State pattern. This object handles onMessage().
* handleMessage() can transition to a different state, if
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { KMWString } from 'keyman/common/web-utils';
import { LexicalModelTypes } from '@keymanapp/common-types';

import * as correction from './correction/index.js'
import TransformUtils from './transformUtils.js';
import { TransformUtils } from './transformUtils.js';
import { applySuggestionCasing, correctAndEnumerate, dedupeSuggestions, finalizeSuggestions, predictionAutoSelect, processSimilarity, toAnnotatedSuggestion, tupleDisplayOrderSort } from './predict-helpers.js';
import { detectCurrentCasing, determineModelTokenizer, determineModelWordbreaker, determinePunctuationFromModel } from './model-helpers.js';

Expand Down Expand Up @@ -355,5 +355,3 @@ export class ModelCompositor {
}
}
}

export default ModelCompositor;
Loading