@keymanapp/kmc-ldml 17.0.104-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/src/compiler/compiler-options.d.ts +11 -0
- package/build/src/compiler/compiler-options.d.ts.map +1 -0
- package/build/src/compiler/compiler-options.js +3 -0
- package/build/src/compiler/compiler-options.js.map +1 -0
- package/build/src/compiler/compiler.d.ts +38 -0
- package/build/src/compiler/compiler.d.ts.map +1 -0
- package/build/src/compiler/compiler.js +144 -0
- package/build/src/compiler/compiler.js.map +1 -0
- package/build/src/compiler/disp.d.ts +10 -0
- package/build/src/compiler/disp.d.ts.map +1 -0
- package/build/src/compiler/disp.js +37 -0
- package/build/src/compiler/disp.js.map +1 -0
- package/build/src/compiler/keymanweb-compiler.d.ts +16 -0
- package/build/src/compiler/keymanweb-compiler.d.ts.map +1 -0
- package/build/src/compiler/keymanweb-compiler.js +96 -0
- package/build/src/compiler/keymanweb-compiler.js.map +1 -0
- package/build/src/compiler/keys.d.ts +26 -0
- package/build/src/compiler/keys.d.ts.map +1 -0
- package/build/src/compiler/keys.js +207 -0
- package/build/src/compiler/keys.js.map +1 -0
- package/build/src/compiler/layr.d.ts +10 -0
- package/build/src/compiler/layr.d.ts.map +1 -0
- package/build/src/compiler/layr.js +79 -0
- package/build/src/compiler/layr.js.map +1 -0
- package/build/src/compiler/loca.d.ts +16 -0
- package/build/src/compiler/loca.d.ts.map +1 -0
- package/build/src/compiler/loca.js +58 -0
- package/build/src/compiler/loca.js.map +1 -0
- package/build/src/compiler/messages.d.ts +93 -0
- package/build/src/compiler/messages.d.ts.map +1 -0
- package/build/src/compiler/messages.js +54 -0
- package/build/src/compiler/messages.js.map +1 -0
- package/build/src/compiler/meta.d.ts +12 -0
- package/build/src/compiler/meta.d.ts.map +1 -0
- package/build/src/compiler/meta.js +58 -0
- package/build/src/compiler/meta.js.map +1 -0
- package/build/src/compiler/metadata-compiler.d.ts +13 -0
- package/build/src/compiler/metadata-compiler.d.ts.map +1 -0
- package/build/src/compiler/metadata-compiler.js +47 -0
- package/build/src/compiler/metadata-compiler.js.map +1 -0
- package/build/src/compiler/name.d.ts +10 -0
- package/build/src/compiler/name.d.ts.map +1 -0
- package/build/src/compiler/name.js +20 -0
- package/build/src/compiler/name.js.map +1 -0
- package/build/src/compiler/ordr.d.ts +12 -0
- package/build/src/compiler/ordr.d.ts.map +1 -0
- package/build/src/compiler/ordr.js +35 -0
- package/build/src/compiler/ordr.js.map +1 -0
- package/build/src/compiler/section-compiler.d.ts +12 -0
- package/build/src/compiler/section-compiler.d.ts.map +1 -0
- package/build/src/compiler/section-compiler.js +22 -0
- package/build/src/compiler/section-compiler.js.map +1 -0
- package/build/src/compiler/touch-layout-compiler.d.ts +8 -0
- package/build/src/compiler/touch-layout-compiler.d.ts.map +1 -0
- package/build/src/compiler/touch-layout-compiler.js +87 -0
- package/build/src/compiler/touch-layout-compiler.js.map +1 -0
- package/build/src/compiler/tran.d.ts +41 -0
- package/build/src/compiler/tran.d.ts.map +1 -0
- package/build/src/compiler/tran.js +102 -0
- package/build/src/compiler/tran.js.map +1 -0
- package/build/src/compiler/visual-keyboard-compiler.d.ts +7 -0
- package/build/src/compiler/visual-keyboard-compiler.d.ts.map +1 -0
- package/build/src/compiler/visual-keyboard-compiler.js +51 -0
- package/build/src/compiler/visual-keyboard-compiler.js.map +1 -0
- package/build/src/compiler/vkey.d.ts +10 -0
- package/build/src/compiler/vkey.d.ts.map +1 -0
- package/build/src/compiler/vkey.js +59 -0
- package/build/src/compiler/vkey.js.map +1 -0
- package/build/src/kpj.schema.json +127 -0
- package/build/src/kvks.schema.json +182 -0
- package/build/src/ldml-keyboard.schema.json +702 -0
- package/build/src/ldml-keyboardtest.schema.json +221 -0
- package/build/src/main.d.ts +9 -0
- package/build/src/main.d.ts.map +1 -0
- package/build/src/main.js +8 -0
- package/build/src/main.js.map +1 -0
- package/build/src/util/util.d.ts +32 -0
- package/build/src/util/util.d.ts.map +1 -0
- package/build/src/util/util.js +85 -0
- package/build/src/util/util.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/compiler/keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { KMXPlus } from '@keymanapp/common-types';
|
|
2
|
+
import { SectionCompiler } from "./section-compiler.js";
|
|
3
|
+
import GlobalSections = KMXPlus.GlobalSections;
|
|
4
|
+
import Layr = KMXPlus.Layr;
|
|
5
|
+
export declare class LayrCompiler extends SectionCompiler {
|
|
6
|
+
get id(): import("@keymanapp/ldml-keyboard-constants").SectionIdent;
|
|
7
|
+
validate(): boolean;
|
|
8
|
+
compile(sections: GlobalSections): Layr;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=layr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layr.d.ts","sourceRoot":"","sources":["../../../src/compiler/layr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxD,OAAO,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AAC/C,OAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAK3B,qBAAa,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE,8DAEZ;IAEM,QAAQ;IAwCR,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CA2B/C"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { constants } from '@keymanapp/ldml-keyboard-constants';
|
|
2
|
+
import { KMXPlus } from '@keymanapp/common-types';
|
|
3
|
+
import { CompilerMessages } from './messages.js';
|
|
4
|
+
import { SectionCompiler } from "./section-compiler.js";
|
|
5
|
+
import { translateLayerAttrToModifier, validModifier } from '../util/util.js';
|
|
6
|
+
var Layr = KMXPlus.Layr;
|
|
7
|
+
export class LayrCompiler extends SectionCompiler {
|
|
8
|
+
get id() {
|
|
9
|
+
return constants.section.layr;
|
|
10
|
+
}
|
|
11
|
+
validate() {
|
|
12
|
+
let valid = true;
|
|
13
|
+
let totalLayerCount = 0;
|
|
14
|
+
let hardwareLayers = 0;
|
|
15
|
+
// let touchLayers = 0;
|
|
16
|
+
this.keyboard.layers?.forEach((layers) => {
|
|
17
|
+
const { form } = layers;
|
|
18
|
+
if (form === 'touch') {
|
|
19
|
+
// touchLayers++;
|
|
20
|
+
// multiple touch layers are OK
|
|
21
|
+
totalLayerCount += layers.layer?.length;
|
|
22
|
+
// TODO-LDML: check that widths are distinct
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
// hardware
|
|
26
|
+
hardwareLayers++;
|
|
27
|
+
if (hardwareLayers > 1) {
|
|
28
|
+
valid = false;
|
|
29
|
+
this.callbacks.reportMessage(CompilerMessages.Error_ExcessHardware({ form }));
|
|
30
|
+
}
|
|
31
|
+
else if (!constants.layr_list_hardware_map.get(form)) {
|
|
32
|
+
valid = false;
|
|
33
|
+
this.callbacks.reportMessage(CompilerMessages.Error_InvalidHardware({ form }));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
layers.layer.forEach((layer) => {
|
|
37
|
+
const { modifier, id } = layer;
|
|
38
|
+
totalLayerCount++;
|
|
39
|
+
if (!validModifier(modifier)) {
|
|
40
|
+
this.callbacks.reportMessage(CompilerMessages.Error_InvalidModifier({ modifier, layer: id }));
|
|
41
|
+
valid = false;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
if (totalLayerCount === 0) { // TODO-LDML: does not validate touch layers yet
|
|
46
|
+
// no layers seen anywhere
|
|
47
|
+
valid = false;
|
|
48
|
+
this.callbacks.reportMessage(CompilerMessages.Error_MustBeAtLeastOneLayerElement());
|
|
49
|
+
}
|
|
50
|
+
return valid;
|
|
51
|
+
}
|
|
52
|
+
compile(sections) {
|
|
53
|
+
const sect = new Layr();
|
|
54
|
+
sect.lists = this.keyboard.layers.map((layers) => {
|
|
55
|
+
const hardware = constants.layr_list_hardware_map.get(layers.form);
|
|
56
|
+
// Already validated in validate
|
|
57
|
+
const list = {
|
|
58
|
+
hardware,
|
|
59
|
+
minDeviceWidth: layers.minDeviceWidth || 0,
|
|
60
|
+
layers: layers.layer.map((layer) => {
|
|
61
|
+
const entry = {
|
|
62
|
+
id: sections.strs.allocString(layer.id),
|
|
63
|
+
mod: translateLayerAttrToModifier(layer),
|
|
64
|
+
rows: layer.row.map((row) => {
|
|
65
|
+
const erow = {
|
|
66
|
+
keys: row.keys.split(' ').map((id) => sections.strs.allocString(id)),
|
|
67
|
+
};
|
|
68
|
+
return erow;
|
|
69
|
+
}),
|
|
70
|
+
};
|
|
71
|
+
return entry;
|
|
72
|
+
}),
|
|
73
|
+
};
|
|
74
|
+
return list;
|
|
75
|
+
});
|
|
76
|
+
return sect;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=layr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layr.js","sourceRoot":"","sources":["../../../src/compiler/layr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { KMXPlus } from '@keymanapp/common-types';
|
|
2
|
+
import { SectionCompiler } from "./section-compiler.js";
|
|
3
|
+
import GlobalSections = KMXPlus.GlobalSections;
|
|
4
|
+
import Loca = KMXPlus.Loca;
|
|
5
|
+
export declare class LocaCompiler extends SectionCompiler {
|
|
6
|
+
get id(): import("@keymanapp/ldml-keyboard-constants").SectionIdent;
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
* @param keyboard
|
|
10
|
+
* @returns list of BCP 47 tags in the keyboard xml, potentially with invalid or repeated entries
|
|
11
|
+
*/
|
|
12
|
+
private getLocales;
|
|
13
|
+
validate(): boolean;
|
|
14
|
+
compile(sections: GlobalSections): Loca;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=loca.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loca.d.ts","sourceRoot":"","sources":["../../../src/compiler/loca.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AAC/C,OAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAG3B,qBAAa,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE,8DAEZ;IAED;;;;OAIG;IACH,OAAO,CAAC,UAAU,CAE+F;IAE1G,QAAQ,IAAI,OAAO;IAkBnB,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CA0B/C"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { constants } from "@keymanapp/ldml-keyboard-constants";
|
|
2
|
+
import { KMXPlus } from '@keymanapp/common-types';
|
|
3
|
+
import { SectionCompiler } from "./section-compiler.js";
|
|
4
|
+
import { CompilerMessages } from "./messages.js";
|
|
5
|
+
var Loca = KMXPlus.Loca;
|
|
6
|
+
export class LocaCompiler extends SectionCompiler {
|
|
7
|
+
get id() {
|
|
8
|
+
return constants.section.loca;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
*
|
|
12
|
+
* @param keyboard
|
|
13
|
+
* @returns list of BCP 47 tags in the keyboard xml, potentially with invalid or repeated entries
|
|
14
|
+
*/
|
|
15
|
+
getLocales = (keyboard) => [keyboard.locale].concat(Array.isArray(keyboard.locales?.locale) ? keyboard.locales.locale.map(v => v.id) : []);
|
|
16
|
+
validate() {
|
|
17
|
+
let valid = true;
|
|
18
|
+
const locales = this.getLocales(this.keyboard);
|
|
19
|
+
for (let tag of locales) {
|
|
20
|
+
try {
|
|
21
|
+
new Intl.Locale(tag);
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
if (e instanceof RangeError) {
|
|
25
|
+
this.callbacks.reportMessage(CompilerMessages.Error_InvalidLocale({ tag }));
|
|
26
|
+
valid = false;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
throw e;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return valid;
|
|
34
|
+
}
|
|
35
|
+
compile(sections) {
|
|
36
|
+
let result = new Loca();
|
|
37
|
+
// This also minimizes locales according to Remove Likely Subtags algorithm:
|
|
38
|
+
// https://www.unicode.org/reports/tr35/#Likely_Subtags
|
|
39
|
+
const sourceLocales = this.getLocales(this.keyboard);
|
|
40
|
+
const locales = sourceLocales.map((sourceLocale) => {
|
|
41
|
+
const locale = new Intl.Locale(sourceLocale).minimize().toString();
|
|
42
|
+
if (locale != sourceLocale) {
|
|
43
|
+
this.callbacks.reportMessage(CompilerMessages.Hint_LocaleIsNotMinimalAndClean({ sourceLocale, locale }));
|
|
44
|
+
}
|
|
45
|
+
return locale;
|
|
46
|
+
});
|
|
47
|
+
// TODO: remove `as any` cast: (Intl as any): ts lib version we have doesn't
|
|
48
|
+
// yet include `getCanonicalLocales` but node 16 does include it so we can
|
|
49
|
+
// safely use it. Also well supported in modern browsers.
|
|
50
|
+
const canonicalLocales = Intl.getCanonicalLocales(locales);
|
|
51
|
+
result.locales = canonicalLocales.map(locale => sections.strs.allocString(locale));
|
|
52
|
+
if (result.locales.length < locales.length) {
|
|
53
|
+
this.callbacks.reportMessage(CompilerMessages.Hint_OneOrMoreRepeatedLocales());
|
|
54
|
+
}
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=loca.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loca.js","sourceRoot":"","sources":["../../../src/compiler/loca.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAgB,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,IAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAG3B,MAAM,OAAO,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE;QACX,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACK,UAAU,GAChB,CAAC,QAAoB,EAAE,EAAE,CACzB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAE1G,QAAQ;QACb,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,KAAI,IAAI,GAAG,IAAI,OAAO,EAAE;YACtB,IAAI;gBACF,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACtB;YAAC,OAAM,CAAC,EAAE;gBACT,IAAG,CAAC,YAAY,UAAU,EAAE;oBAC1B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,EAAC,GAAG,EAAC,CAAC,CAAC,CAAC;oBAC1E,KAAK,GAAG,KAAK,CAAC;iBACf;qBAAM;oBACL,MAAM,CAAC,CAAC;iBACT;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,OAAO,CAAC,QAAwB;QACrC,IAAI,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAExB,4EAA4E;QAC5E,uDAAuD;QACvD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,YAAoB,EAAE,EAAE;YACzD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;YACnE,IAAG,MAAM,IAAI,YAAY,EAAE;gBACzB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,+BAA+B,CAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC;aACxG;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,4EAA4E;QAC5E,0EAA0E;QAC1E,yDAAyD;QACzD,MAAM,gBAAgB,GAAI,IAAY,CAAC,mBAAmB,CAAC,OAAO,CAAa,CAAC;QAChF,MAAM,CAAC,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAEnF,IAAG,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE;YACzC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,6BAA6B,EAAE,CAAC,CAAC;SAChF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export declare class CompilerMessages {
|
|
2
|
+
static Error_InvalidNormalization: (o: {
|
|
3
|
+
form: string;
|
|
4
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
5
|
+
static ERROR_InvalidNormalization: number;
|
|
6
|
+
static Error_InvalidLocale: (o: {
|
|
7
|
+
tag: string;
|
|
8
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
9
|
+
static ERROR_InvalidLocale: number;
|
|
10
|
+
static Error_HardwareLayerHasTooManyRows: () => import("@keymanapp/common-types").CompilerEvent;
|
|
11
|
+
static ERROR_HardwareLayerHasTooManyRows: number;
|
|
12
|
+
static Error_RowOnHardwareLayerHasTooManyKeys: (o: {
|
|
13
|
+
row: number;
|
|
14
|
+
hardware: string;
|
|
15
|
+
modifier: string;
|
|
16
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
17
|
+
static ERROR_RowOnHardwareLayerHasTooManyKeys: number;
|
|
18
|
+
static Error_KeyNotFoundInKeyBag: (o: {
|
|
19
|
+
keyId: string;
|
|
20
|
+
col: number;
|
|
21
|
+
row: number;
|
|
22
|
+
layer: string;
|
|
23
|
+
form: string;
|
|
24
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
25
|
+
static ERROR_KeyNotFoundInKeyBag: number;
|
|
26
|
+
static Hint_OneOrMoreRepeatedLocales: () => import("@keymanapp/common-types").CompilerEvent;
|
|
27
|
+
static HINT_OneOrMoreRepeatedLocales: number;
|
|
28
|
+
static Error_InvalidFile: (o: {
|
|
29
|
+
errorText: string;
|
|
30
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
31
|
+
static ERROR_InvalidFile: number;
|
|
32
|
+
static Hint_LocaleIsNotMinimalAndClean: (o: {
|
|
33
|
+
sourceLocale: string;
|
|
34
|
+
locale: string;
|
|
35
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
36
|
+
static HINT_LocaleIsNotMinimalAndClean: number;
|
|
37
|
+
static Error_VkeyIsNotValid: (o: {
|
|
38
|
+
vkey: string;
|
|
39
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
40
|
+
static ERROR_VkeyIsNotValid: number;
|
|
41
|
+
static Hint_VkeyIsRedundant: (o: {
|
|
42
|
+
vkey: string;
|
|
43
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
44
|
+
static HINT_VkeyIsRedundant: number;
|
|
45
|
+
static Error_VkeyIsRepeated: (o: {
|
|
46
|
+
vkey: string;
|
|
47
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
48
|
+
static ERROR_VkeyIsRepeated: number;
|
|
49
|
+
static Info_MultipleVkeysHaveSameTarget: (o: {
|
|
50
|
+
vkey: string;
|
|
51
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
52
|
+
static INFO_MultipleVkeysHaveSameTarget: number;
|
|
53
|
+
static Error_InvalidVersion: (o: {
|
|
54
|
+
version: string;
|
|
55
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
56
|
+
static ERROR_InvalidVersion: number;
|
|
57
|
+
static Error_MustBeAtLeastOneLayerElement: () => import("@keymanapp/common-types").CompilerEvent;
|
|
58
|
+
static ERROR_MustBeAtLeastOneLayerElement: number;
|
|
59
|
+
static Fatal_SectionCompilerFailed: (o: {
|
|
60
|
+
sect: string;
|
|
61
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
62
|
+
static FATAL_SectionCompilerFailed: number;
|
|
63
|
+
static Error_DisplayIsRepeated: (o: {
|
|
64
|
+
to: string;
|
|
65
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
66
|
+
static ERROR_DisplayIsRepeated: number;
|
|
67
|
+
static Error_KeyMissingToGapOrSwitch: (o: {
|
|
68
|
+
keyId: string;
|
|
69
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
70
|
+
static ERROR_KeyMissingToGapOrSwitch: number;
|
|
71
|
+
static Error_ExcessHardware: (o: {
|
|
72
|
+
form: string;
|
|
73
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
74
|
+
static ERROR_ExcessHardware: number;
|
|
75
|
+
static Error_InvalidHardware: (o: {
|
|
76
|
+
form: string;
|
|
77
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
78
|
+
/**
|
|
79
|
+
* Note: may not hit this due to XML validation.
|
|
80
|
+
*/
|
|
81
|
+
static ERROR_InvalidHardware: number;
|
|
82
|
+
static Error_InvalidModifier: (o: {
|
|
83
|
+
layer: string;
|
|
84
|
+
modifier: string;
|
|
85
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
86
|
+
static ERROR_InvalidModifier: number;
|
|
87
|
+
static Error_MissingFlicks: (o: {
|
|
88
|
+
flicks: string;
|
|
89
|
+
id: string;
|
|
90
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
91
|
+
static ERROR_MissingFlicks: number;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/compiler/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { CompilerErrorNamespace, CompilerErrorSeverity, CompilerMessageSpec as m } from "@keymanapp/common-types";
|
|
2
|
+
const SevInfo = CompilerErrorSeverity.Info | CompilerErrorNamespace.LdmlKeyboardCompiler;
|
|
3
|
+
const SevHint = CompilerErrorSeverity.Hint | CompilerErrorNamespace.LdmlKeyboardCompiler;
|
|
4
|
+
// const SevWarn = CompilerErrorSeverity.Warn | CompilerErrorNamespace.KeyboardCompiler;
|
|
5
|
+
const SevError = CompilerErrorSeverity.Error | CompilerErrorNamespace.LdmlKeyboardCompiler;
|
|
6
|
+
const SevFatal = CompilerErrorSeverity.Fatal | CompilerErrorNamespace.LdmlKeyboardCompiler;
|
|
7
|
+
export class CompilerMessages {
|
|
8
|
+
static Error_InvalidNormalization = (o) => m(this.ERROR_InvalidNormalization, `Invalid normalization form '${o.form}`);
|
|
9
|
+
static ERROR_InvalidNormalization = SevError | 0x0001;
|
|
10
|
+
static Error_InvalidLocale = (o) => m(this.ERROR_InvalidLocale, `Invalid BCP 47 locale form '${o.tag}'`);
|
|
11
|
+
static ERROR_InvalidLocale = SevError | 0x0002;
|
|
12
|
+
static Error_HardwareLayerHasTooManyRows = () => m(this.ERROR_HardwareLayerHasTooManyRows, `'hardware' layer has too many rows`);
|
|
13
|
+
static ERROR_HardwareLayerHasTooManyRows = SevError | 0x0003;
|
|
14
|
+
static Error_RowOnHardwareLayerHasTooManyKeys = (o) => m(this.ERROR_RowOnHardwareLayerHasTooManyKeys, `Row #${o.row} on 'hardware' ${o.hardware} layer for modifier ${o.modifier || 'none'} has too many keys`);
|
|
15
|
+
static ERROR_RowOnHardwareLayerHasTooManyKeys = SevError | 0x0004;
|
|
16
|
+
static Error_KeyNotFoundInKeyBag = (o) => m(this.ERROR_KeyNotFoundInKeyBag, `Key '${o.keyId}' in position #${o.col} on row #${o.row} of layer ${o.layer}, form '${o.form}' not found in key bag`);
|
|
17
|
+
static ERROR_KeyNotFoundInKeyBag = SevError | 0x0005;
|
|
18
|
+
static Hint_OneOrMoreRepeatedLocales = () => m(this.HINT_OneOrMoreRepeatedLocales, `After minimization, one or more locales is repeated and has been removed`);
|
|
19
|
+
static HINT_OneOrMoreRepeatedLocales = SevHint | 0x0006;
|
|
20
|
+
static Error_InvalidFile = (o) => m(this.ERROR_InvalidFile, `The source file has an invalid structure: ${o.errorText}`);
|
|
21
|
+
static ERROR_InvalidFile = SevError | 0x0007;
|
|
22
|
+
static Hint_LocaleIsNotMinimalAndClean = (o) => m(this.HINT_LocaleIsNotMinimalAndClean, `Locale '${o.sourceLocale}' is not minimal or correctly formatted and should be '${o.locale}'`);
|
|
23
|
+
static HINT_LocaleIsNotMinimalAndClean = SevHint | 0x0008;
|
|
24
|
+
static Error_VkeyIsNotValid = (o) => m(this.ERROR_VkeyIsNotValid, `Virtual key '${o.vkey}' is not found in the CLDR VKey Enum table.`);
|
|
25
|
+
static ERROR_VkeyIsNotValid = SevError | 0x0009;
|
|
26
|
+
static Hint_VkeyIsRedundant = (o) => m(this.HINT_VkeyIsRedundant, `Virtual key '${o.vkey}' is mapped to itself, which is redundant.`);
|
|
27
|
+
static HINT_VkeyIsRedundant = SevHint | 0x000A;
|
|
28
|
+
static Error_VkeyIsRepeated = (o) => m(this.ERROR_VkeyIsRepeated, `Virtual key '${o.vkey}' has more than one vkey entry.`);
|
|
29
|
+
static ERROR_VkeyIsRepeated = SevError | 0x000B;
|
|
30
|
+
static Info_MultipleVkeysHaveSameTarget = (o) => m(this.INFO_MultipleVkeysHaveSameTarget, `Target virtual key '${o.vkey}' has multiple source mappings, which may be an error.`);
|
|
31
|
+
static INFO_MultipleVkeysHaveSameTarget = SevInfo | 0x000C;
|
|
32
|
+
static Error_InvalidVersion = (o) => m(this.ERROR_InvalidVersion, `Version number '${o.version}' must be a semantic version format string.`);
|
|
33
|
+
static ERROR_InvalidVersion = SevError | 0x000D;
|
|
34
|
+
static Error_MustBeAtLeastOneLayerElement = () => m(this.ERROR_MustBeAtLeastOneLayerElement, `The source file must contain at least one layer element.`);
|
|
35
|
+
static ERROR_MustBeAtLeastOneLayerElement = SevError | 0x000E;
|
|
36
|
+
static Fatal_SectionCompilerFailed = (o) => m(this.FATAL_SectionCompilerFailed, `The compiler for '${o.sect}' failed unexpectedly.`);
|
|
37
|
+
static FATAL_SectionCompilerFailed = SevFatal | 0x000F;
|
|
38
|
+
static Error_DisplayIsRepeated = (o) => m(this.ERROR_DisplayIsRepeated, `display to='${o.to}' has more than one display entry.`);
|
|
39
|
+
static ERROR_DisplayIsRepeated = SevError | 0x0010;
|
|
40
|
+
static Error_KeyMissingToGapOrSwitch = (o) => m(this.ERROR_KeyMissingToGapOrSwitch, `key id='${o.keyId}' must have either to=, gap=, or switch=.`);
|
|
41
|
+
static ERROR_KeyMissingToGapOrSwitch = SevError | 0x0011;
|
|
42
|
+
static Error_ExcessHardware = (o) => m(this.ERROR_ExcessHardware, `layers form=${o.form}: Can only have one non-'touch' element`);
|
|
43
|
+
static ERROR_ExcessHardware = SevError | 0x0012;
|
|
44
|
+
static Error_InvalidHardware = (o) => m(this.ERROR_InvalidHardware, `layers has invalid value form=${o.form}`);
|
|
45
|
+
/**
|
|
46
|
+
* Note: may not hit this due to XML validation.
|
|
47
|
+
*/
|
|
48
|
+
static ERROR_InvalidHardware = SevError | 0x0013;
|
|
49
|
+
static Error_InvalidModifier = (o) => m(this.ERROR_InvalidModifier, `layer has invalid modifier='${o.modifier}' on layer id=${o.layer}`);
|
|
50
|
+
static ERROR_InvalidModifier = SevError | 0x0014;
|
|
51
|
+
static Error_MissingFlicks = (o) => m(this.ERROR_MissingFlicks, `key id=${o.id} refers to missing flicks=${o.flicks}`);
|
|
52
|
+
static ERROR_MissingFlicks = SevError | 0x0015;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/compiler/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { KMXPlus } from '@keymanapp/common-types';
|
|
2
|
+
import { SectionCompiler } from "./section-compiler.js";
|
|
3
|
+
import GlobalSections = KMXPlus.GlobalSections;
|
|
4
|
+
import Meta = KMXPlus.Meta;
|
|
5
|
+
export declare class MetaCompiler extends SectionCompiler {
|
|
6
|
+
get id(): import("@keymanapp/ldml-keyboard-constants").SectionIdent;
|
|
7
|
+
validate(): boolean;
|
|
8
|
+
private validateVersion;
|
|
9
|
+
private validateNormalization;
|
|
10
|
+
compile(sections: GlobalSections): Meta;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=meta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/compiler/meta.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIlD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AAC/C,OAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAI3B,qBAAa,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE,8DAEZ;IAEM,QAAQ,IAAI,OAAO;IAS1B,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,qBAAqB;IAUtB,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAc/C"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { constants } from "@keymanapp/ldml-keyboard-constants";
|
|
2
|
+
import { KMXPlus } from '@keymanapp/common-types';
|
|
3
|
+
import { isValidEnumValue } from "../util/util.js";
|
|
4
|
+
import { CompilerMessages } from "./messages.js";
|
|
5
|
+
import { SectionCompiler } from "./section-compiler.js";
|
|
6
|
+
import semver from "semver";
|
|
7
|
+
var Meta = KMXPlus.Meta;
|
|
8
|
+
var Meta_NormalizationForm = KMXPlus.Meta_NormalizationForm;
|
|
9
|
+
var KeyboardSettings = KMXPlus.KeyboardSettings;
|
|
10
|
+
export class MetaCompiler extends SectionCompiler {
|
|
11
|
+
get id() {
|
|
12
|
+
return constants.section.meta;
|
|
13
|
+
}
|
|
14
|
+
validate() {
|
|
15
|
+
let valid = true;
|
|
16
|
+
valid &&= this.validateNormalization(this.keyboard.info?.normalization);
|
|
17
|
+
valid &&= this.validateVersion(this.keyboard.version?.number);
|
|
18
|
+
return valid;
|
|
19
|
+
}
|
|
20
|
+
validateVersion(versionNumber) {
|
|
21
|
+
if (versionNumber !== undefined) {
|
|
22
|
+
if (versionNumber.match(/^[=v]/i)) {
|
|
23
|
+
// semver ignores a preceding '=' or 'v'
|
|
24
|
+
this.callbacks.reportMessage(CompilerMessages.Error_InvalidVersion({ version: versionNumber }));
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
if (!semver.parse(versionNumber, { loose: false })) {
|
|
28
|
+
this.callbacks.reportMessage(CompilerMessages.Error_InvalidVersion({ version: versionNumber }));
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
validateNormalization(normalization) {
|
|
35
|
+
if (normalization !== undefined) {
|
|
36
|
+
if (!isValidEnumValue(Meta_NormalizationForm, normalization)) {
|
|
37
|
+
this.callbacks.reportMessage(CompilerMessages.Error_InvalidNormalization({ form: normalization }));
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
compile(sections) {
|
|
44
|
+
let result = new Meta();
|
|
45
|
+
result.author = sections.strs.allocString(this.keyboard.info?.author);
|
|
46
|
+
result.conform = sections.strs.allocString(this.keyboard.conformsTo);
|
|
47
|
+
result.layout = sections.strs.allocString(this.keyboard.info?.layout);
|
|
48
|
+
result.normalization = sections.strs.allocString(this.keyboard.info?.normalization);
|
|
49
|
+
result.indicator = sections.strs.allocString(this.keyboard.info?.indicator);
|
|
50
|
+
result.version = sections.strs.allocString(this.keyboard.version?.number ?? "0.0.0");
|
|
51
|
+
result.settings =
|
|
52
|
+
(this.keyboard.settings?.fallback == "omit" ? KeyboardSettings.fallback : 0) |
|
|
53
|
+
(this.keyboard.settings?.transformFailure == "omit" ? KeyboardSettings.transformFailure : 0) |
|
|
54
|
+
(this.keyboard.settings?.transformPartial == "hide" ? KeyboardSettings.transformPartial : 0);
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../src/compiler/meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,IAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAC3B,IAAO,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;AAC/D,IAAO,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;AAEnD,MAAM,OAAO,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE;QACX,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;IAChC,CAAC;IAEM,QAAQ;QACb,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,KAAK,KAAK,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACxE,KAAK,KAAK,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE9D,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,eAAe,CAAC,aAAsB;QAC5C,IAAG,aAAa,KAAK,SAAS,EAAE;YAC9B,IAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBAChC,wCAAwC;gBACxC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;gBAChG,OAAO,KAAK,CAAC;aACd;YACD,IAAG,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,KAAK,EAAC,CAAC,EAAE;gBAC/C,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;gBAChG,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,qBAAqB,CAAC,aAAsB;QAClD,IAAI,aAAa,KAAK,SAAS,EAAE;YAC/B,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,aAAa,CAAC,EAAE;gBAC5D,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;gBACnG,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,OAAO,CAAC,QAAwB;QACrC,IAAI,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,CAAC,MAAM,GAAU,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7E,MAAM,CAAC,OAAO,GAAS,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3E,MAAM,CAAC,MAAM,GAAU,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7E,MAAM,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACpF,MAAM,CAAC,SAAS,GAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAChF,MAAM,CAAC,OAAO,GAAS,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,CAAC;QAC3F,MAAM,CAAC,QAAQ;YACb,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5E,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,IAAI,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5F,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,IAAI,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { KMX, KMXPlus } from '@keymanapp/common-types';
|
|
2
|
+
import CompilerOptions from "./compiler-options.js";
|
|
3
|
+
import KMXPlusData = KMXPlus.KMXPlusData;
|
|
4
|
+
import KEYBOARD = KMX.KEYBOARD;
|
|
5
|
+
export default class KMXPlusMetadataCompiler {
|
|
6
|
+
/**
|
|
7
|
+
* Look for metadata fields in the KMXPlus data and copy them
|
|
8
|
+
* through to the relevant KMX stores
|
|
9
|
+
* @param kmxplus const KMXPlusData
|
|
10
|
+
*/
|
|
11
|
+
static addKmxMetadata(kmxplus: KMXPlusData, keyboard: KEYBOARD, options: CompilerOptions): void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=metadata-compiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/metadata-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,eAAe,MAAM,uBAAuB,CAAC;AAGpD,OAAO,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;AAEzC,OAAO,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAE/B,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAC1C;;;;OAIG;WACW,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI;CA0CvG"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { KMX } from '@keymanapp/common-types';
|
|
2
|
+
import KEYMAN_VERSION from "@keymanapp/keyman-version";
|
|
3
|
+
var KMXFile = KMX.KMXFile;
|
|
4
|
+
export default class KMXPlusMetadataCompiler {
|
|
5
|
+
/**
|
|
6
|
+
* Look for metadata fields in the KMXPlus data and copy them
|
|
7
|
+
* through to the relevant KMX stores
|
|
8
|
+
* @param kmxplus const KMXPlusData
|
|
9
|
+
*/
|
|
10
|
+
static addKmxMetadata(kmxplus, keyboard, options) {
|
|
11
|
+
// Order of stores is not significant by kmx spec, but kmxplus compiler will
|
|
12
|
+
// always store according to dwSystemID binary order for non-zero
|
|
13
|
+
// dwSystemID, then by dpName binary order, and finally by dpString binary
|
|
14
|
+
// order
|
|
15
|
+
// TSS_NAME = 7
|
|
16
|
+
// TSS_COMPILEDVERSION = 20
|
|
17
|
+
// TSS_KEYBOARDVERSION = 36
|
|
18
|
+
// TSS_TARGETS = 38
|
|
19
|
+
// TSS_NAME: User friendly name of keyboard
|
|
20
|
+
keyboard.stores.push({
|
|
21
|
+
dpName: '&NAME',
|
|
22
|
+
dpString: kmxplus.name?.names?.[0]?.value ?? 'unknown',
|
|
23
|
+
dwSystemID: KMXFile.TSS_NAME
|
|
24
|
+
});
|
|
25
|
+
if (options.addCompilerVersion) {
|
|
26
|
+
// TSS_COMPILEDVERSION: version of the compiler
|
|
27
|
+
keyboard.stores.push({
|
|
28
|
+
dpName: '',
|
|
29
|
+
dpString: KEYMAN_VERSION.VERSION_WITH_TAG,
|
|
30
|
+
dwSystemID: KMXFile.TSS_COMPILEDVERSION
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
// TSS_KEYBOARDVERSION: Version of the keyboard, should be semver
|
|
34
|
+
keyboard.stores.push({
|
|
35
|
+
dpName: '&KEYBOARDVERSION',
|
|
36
|
+
dpString: kmxplus.meta?.version?.value ?? '1.0',
|
|
37
|
+
dwSystemID: KMXFile.TSS_KEYBOARDVERSION
|
|
38
|
+
});
|
|
39
|
+
// TSS_TARGETS: which platforms are supported
|
|
40
|
+
keyboard.stores.push({
|
|
41
|
+
dpName: '&TARGETS',
|
|
42
|
+
dpString: 'desktop',
|
|
43
|
+
dwSystemID: KMXFile.TSS_TARGETS
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=metadata-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-compiler.js","sourceRoot":"","sources":["../../../src/compiler/metadata-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAW,MAAM,yBAAyB,CAAC;AAEvD,OAAO,cAAc,MAAM,2BAA2B,CAAC;AAGvD,IAAO,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;AAG7B,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAC1C;;;;OAIG;IACI,MAAM,CAAC,cAAc,CAAC,OAAoB,EAAE,QAAkB,EAAE,OAAwB;QAC7F,4EAA4E;QAC5E,iEAAiE;QACjE,0EAA0E;QAC1E,QAAQ;QAER,eAAe;QACf,2BAA2B;QAC3B,2BAA2B;QAC3B,mBAAmB;QAEnB,2CAA2C;QAC3C,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,SAAS;YACtD,UAAU,EAAE,OAAO,CAAC,QAAQ;SAC7B,CAAC,CAAC;QAEH,IAAG,OAAO,CAAC,kBAAkB,EAAE;YAC7B,+CAA+C;YAC/C,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;gBACnB,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,cAAc,CAAC,gBAAgB;gBACzC,UAAU,EAAE,OAAO,CAAC,mBAAmB;aACxC,CAAC,CAAC;SACJ;QAED,iEAAiE;QACjE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,kBAAkB;YAC1B,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK;YAC/C,UAAU,EAAE,OAAO,CAAC,mBAAmB;SACxC,CAAC,CAAC;QAEH,6CAA6C;QAC7C,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC,CAAC,CAAC;IACL,CAAC;CAEF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { KMXPlus } from '@keymanapp/common-types';
|
|
2
|
+
import { SectionCompiler } from "./section-compiler.js";
|
|
3
|
+
import GlobalSections = KMXPlus.GlobalSections;
|
|
4
|
+
import Name = KMXPlus.Name;
|
|
5
|
+
export declare class NameCompiler extends SectionCompiler {
|
|
6
|
+
get id(): import("@keymanapp/ldml-keyboard-constants").SectionIdent;
|
|
7
|
+
validate(): boolean;
|
|
8
|
+
compile(sections: GlobalSections): Name;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=name.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"name.d.ts","sourceRoot":"","sources":["../../../src/compiler/name.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AAC/C,OAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAE3B,qBAAa,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE,8DAEZ;IAEM,QAAQ,IAAI,OAAO;IAMnB,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAK/C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { constants } from "@keymanapp/ldml-keyboard-constants";
|
|
2
|
+
import { KMXPlus } from '@keymanapp/common-types';
|
|
3
|
+
import { SectionCompiler } from "./section-compiler.js";
|
|
4
|
+
var Name = KMXPlus.Name;
|
|
5
|
+
export class NameCompiler extends SectionCompiler {
|
|
6
|
+
get id() {
|
|
7
|
+
return constants.section.name;
|
|
8
|
+
}
|
|
9
|
+
validate() {
|
|
10
|
+
let valid = true;
|
|
11
|
+
valid = (this.keyboard.names?.name?.length ?? 0) > 0;
|
|
12
|
+
return valid;
|
|
13
|
+
}
|
|
14
|
+
compile(sections) {
|
|
15
|
+
let result = new Name();
|
|
16
|
+
result.names = this.keyboard.names?.name?.map(v => sections.strs.allocString(v.value)) ?? [];
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"name.js","sourceRoot":"","sources":["../../../src/compiler/name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,IAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAE3B,MAAM,OAAO,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE;QACX,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;IAChC,CAAC;IAEM,QAAQ;QACb,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,OAAO,CAAC,QAAwB;QACrC,IAAI,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7F,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { KMXPlus } from '@keymanapp/common-types';
|
|
2
|
+
import { SectionCompiler } from "./section-compiler.js";
|
|
3
|
+
import GlobalSections = KMXPlus.GlobalSections;
|
|
4
|
+
import Ordr = KMXPlus.Ordr;
|
|
5
|
+
export declare class OrdrCompiler extends SectionCompiler {
|
|
6
|
+
get id(): import("@keymanapp/ldml-keyboard-constants").SectionIdent;
|
|
7
|
+
validate(): boolean;
|
|
8
|
+
private compileReorder;
|
|
9
|
+
private compileReorders;
|
|
10
|
+
compile(sections: GlobalSections): Ordr;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=ordr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ordr.d.ts","sourceRoot":"","sources":["../../../src/compiler/ordr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAgB,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AAC/C,OAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAK3B,qBAAa,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE,8DAEZ;IAEM,QAAQ,IAAI,OAAO;IAO1B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,eAAe;IAYhB,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAG/C"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { constants } from "@keymanapp/ldml-keyboard-constants";
|
|
2
|
+
import { KMXPlus } from '@keymanapp/common-types';
|
|
3
|
+
import { SectionCompiler } from "./section-compiler.js";
|
|
4
|
+
var Ordr = KMXPlus.Ordr;
|
|
5
|
+
var OrdrItem = KMXPlus.OrdrItem;
|
|
6
|
+
export class OrdrCompiler extends SectionCompiler {
|
|
7
|
+
get id() {
|
|
8
|
+
return constants.section.ordr;
|
|
9
|
+
}
|
|
10
|
+
validate() {
|
|
11
|
+
let valid = true;
|
|
12
|
+
// TODO-LDML: linting here should check for identical before+from, but this involves a double-parse which is ugly
|
|
13
|
+
// TODO-LDML: unicodesets means that either we fully parse them and verify conflicting rules or the linting is imperfect
|
|
14
|
+
return valid;
|
|
15
|
+
}
|
|
16
|
+
compileReorder(sections, reorder) {
|
|
17
|
+
let result = new OrdrItem();
|
|
18
|
+
result.elements = sections.elem.allocElementString(sections.strs, reorder.from, reorder.order, reorder.tertiary, reorder.tertiary_base, reorder.prebase);
|
|
19
|
+
result.before = sections.elem.allocElementString(sections.strs, reorder.before);
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
compileReorders(sections, reorders) {
|
|
23
|
+
let result = new Ordr();
|
|
24
|
+
if (reorders?.reorder) {
|
|
25
|
+
for (let reorder of reorders.reorder) {
|
|
26
|
+
result.items.push(this.compileReorder(sections, reorder));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
compile(sections) {
|
|
32
|
+
return this.compileReorders(sections, this.keyboard.reorders);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=ordr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ordr.js","sourceRoot":"","sources":["../../../src/compiler/ordr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAgB,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,IAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAC3B,IAAO,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AAInC,MAAM,OAAO,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE;QACX,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;IAChC,CAAC;IAEM,QAAQ;QACb,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,iHAAiH;QACjH,wHAAwH;QACxH,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,cAAc,CAAC,QAAwB,EAAE,OAAkB;QACjE,IAAI,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACzJ,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAChF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,eAAe,CAAC,QAAwB,EAAE,QAAoB;QACpE,IAAI,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAExB,IAAG,QAAQ,EAAE,OAAO,EAAE;YACpB,KAAI,IAAI,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACnC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;aAC3D;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,OAAO,CAAC,QAAwB;QACrC,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;CACF"}
|