@keymanapp/kmc-kmn 17.0.155-alpha → 17.0.156-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.
Files changed (54) hide show
  1. package/build/src/compiler/compiler.d.ts +98 -50
  2. package/build/src/compiler/compiler.d.ts.map +1 -1
  3. package/build/src/compiler/compiler.js +405 -268
  4. package/build/src/compiler/compiler.js.map +1 -1
  5. package/build/src/compiler/messages.d.ts +230 -218
  6. package/build/src/compiler/messages.d.ts.map +1 -1
  7. package/build/src/compiler/messages.js +242 -234
  8. package/build/src/compiler/messages.js.map +1 -1
  9. package/build/src/import/kmcmplib/wasm-host.d.ts +5 -3
  10. package/build/src/import/kmcmplib/wasm-host.d.ts.map +1 -1
  11. package/build/src/import/kmcmplib/wasm-host.js +3264 -1145
  12. package/build/src/import/kmcmplib/wasm-host.js.map +1 -1
  13. package/build/src/import/kmcmplib/wasm-host.wasm +0 -0
  14. package/build/src/kmw-compiler/compiler-globals.d.ts +21 -0
  15. package/build/src/kmw-compiler/compiler-globals.d.ts.map +1 -0
  16. package/build/src/kmw-compiler/compiler-globals.js +37 -0
  17. package/build/src/kmw-compiler/compiler-globals.js.map +1 -0
  18. package/build/src/kmw-compiler/constants.d.ts +16 -0
  19. package/build/src/kmw-compiler/constants.d.ts.map +1 -0
  20. package/build/src/kmw-compiler/constants.js +62 -0
  21. package/build/src/kmw-compiler/constants.js.map +1 -0
  22. package/build/src/kmw-compiler/javascript-strings.d.ts +35 -0
  23. package/build/src/kmw-compiler/javascript-strings.d.ts.map +1 -0
  24. package/build/src/kmw-compiler/javascript-strings.js +854 -0
  25. package/build/src/kmw-compiler/javascript-strings.js.map +1 -0
  26. package/build/src/kmw-compiler/keymanweb-key-codes.d.ts +25 -0
  27. package/build/src/kmw-compiler/keymanweb-key-codes.d.ts.map +1 -0
  28. package/build/src/kmw-compiler/keymanweb-key-codes.js +806 -0
  29. package/build/src/kmw-compiler/keymanweb-key-codes.js.map +1 -0
  30. package/build/src/kmw-compiler/kmw-compiler.d.ts +16 -0
  31. package/build/src/kmw-compiler/kmw-compiler.d.ts.map +1 -0
  32. package/build/src/kmw-compiler/kmw-compiler.js +535 -0
  33. package/build/src/kmw-compiler/kmw-compiler.js.map +1 -0
  34. package/build/src/kmw-compiler/messages.d.ts +85 -0
  35. package/build/src/kmw-compiler/messages.d.ts.map +1 -0
  36. package/build/src/kmw-compiler/messages.js +48 -0
  37. package/build/src/kmw-compiler/messages.js.map +1 -0
  38. package/build/src/kmw-compiler/util.d.ts +77 -0
  39. package/build/src/kmw-compiler/util.d.ts.map +1 -0
  40. package/build/src/kmw-compiler/util.js +249 -0
  41. package/build/src/kmw-compiler/util.js.map +1 -0
  42. package/build/src/kmw-compiler/validate-layout-file.d.ts +10 -0
  43. package/build/src/kmw-compiler/validate-layout-file.d.ts.map +1 -0
  44. package/build/src/kmw-compiler/validate-layout-file.js +246 -0
  45. package/build/src/kmw-compiler/validate-layout-file.js.map +1 -0
  46. package/build/src/kmw-compiler/visual-keyboard-compiler.d.ts +5 -0
  47. package/build/src/kmw-compiler/visual-keyboard-compiler.d.ts.map +1 -0
  48. package/build/src/kmw-compiler/visual-keyboard-compiler.js +121 -0
  49. package/build/src/kmw-compiler/visual-keyboard-compiler.js.map +1 -0
  50. package/build/src/main.d.ts +6 -3
  51. package/build/src/main.d.ts.map +1 -1
  52. package/build/src/main.js +6 -3
  53. package/build/src/main.js.map +1 -1
  54. package/package.json +7 -5
@@ -0,0 +1,246 @@
1
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="c525678c-7471-51d2-bf5d-ab1d060c0a64")}catch(e){}}();
2
+ import { Osk, TouchLayout, TouchLayoutFileReader, TouchLayoutFileWriter } from "@keymanapp/common-types";
3
+ import { callbacks, IsKeyboardVersion14OrLater, IsKeyboardVersion15OrLater } from "./compiler-globals.js";
4
+ import { JavaScript_Key } from "./javascript-strings.js";
5
+ import { TRequiredKey, CRequiredKeys, CSpecialText10, CSpecialText14, CSpecialText14ZWNJ, CSpecialText14Map } from "./constants.js";
6
+ import { KeymanWebTouchStandardKeyNames, KMWAdditionalKeyNames, VKeyNames } from "./keymanweb-key-codes.js";
7
+ import { KmwCompilerMessages } from "./messages.js";
8
+ ;
9
+ function IsValidUnicodeValue(ch) {
10
+ return ((ch >= 0x0020) && (ch <= 0x007F)) ||
11
+ ((ch >= 0x00A0) && (ch <= 0x10FFFF));
12
+ }
13
+ var TKeyIdType;
14
+ (function (TKeyIdType) {
15
+ TKeyIdType[TKeyIdType["Key_Invalid"] = 0] = "Key_Invalid";
16
+ TKeyIdType[TKeyIdType["Key_Constant"] = 1] = "Key_Constant";
17
+ TKeyIdType[TKeyIdType["Key_Touch"] = 2] = "Key_Touch";
18
+ TKeyIdType[TKeyIdType["Key_Unicode"] = 3] = "Key_Unicode";
19
+ TKeyIdType[TKeyIdType["Key_Unicode_Multi"] = 4] = "Key_Unicode_Multi";
20
+ })(TKeyIdType || (TKeyIdType = {}));
21
+ ; // I4142
22
+ function GetKeyIdUnicodeType(value) {
23
+ let values = value.split('_');
24
+ for (let v of values) {
25
+ if (!IsValidUnicodeValue(parseInt(v, 16))) {
26
+ return TKeyIdType.Key_Invalid;
27
+ }
28
+ }
29
+ if (values.length > 1) {
30
+ return TKeyIdType.Key_Unicode_Multi;
31
+ }
32
+ return TKeyIdType.Key_Unicode;
33
+ }
34
+ function KeyIdType(FId) {
35
+ FId = FId.toUpperCase();
36
+ switch (FId.charAt(0)) {
37
+ case 'T':
38
+ return TKeyIdType.Key_Touch;
39
+ case 'U':
40
+ if (FId.startsWith('U_')) {
41
+ return GetKeyIdUnicodeType(FId.substring(2));
42
+ }
43
+ default:
44
+ // Note: can't use indexOf because some VKeyNames are mixed case, e.g. K_oE2
45
+ if (VKeyNames.find(key => key.toUpperCase() == FId)) {
46
+ return TKeyIdType.Key_Constant;
47
+ }
48
+ if (KeymanWebTouchStandardKeyNames.indexOf(FId) >= 0) {
49
+ return TKeyIdType.Key_Constant;
50
+ }
51
+ if (KMWAdditionalKeyNames.indexOf(FId) >= 0) {
52
+ return TKeyIdType.Key_Constant;
53
+ }
54
+ }
55
+ return TKeyIdType.Key_Invalid;
56
+ }
57
+ function CheckKey(platformId, FPlatform, layer, FId, FText, FNextLayer, FKeyType, FRequiredKeys, FDictionary) {
58
+ //
59
+ // Coerce missing ID and Text to empty strings for additional tests
60
+ //
61
+ FId = FId ?? '';
62
+ FText = FText ?? '';
63
+ //
64
+ // Check that each touch layer has K_LOPT, [K_ROPT,] K_BKSP, K_ENTER
65
+ //
66
+ for (let key of CRequiredKeys) {
67
+ if (TRequiredKey[key].toLowerCase() == FId.toLowerCase()) {
68
+ if (FRequiredKeys.indexOf(key) < 0) {
69
+ FRequiredKeys.push(key);
70
+ }
71
+ break;
72
+ }
73
+ }
74
+ //
75
+ // Check that each layer referenced exists
76
+ //
77
+ if (typeof FNextLayer == 'string' && FNextLayer.length > 0) {
78
+ if (FPlatform.layer.find(l => l.id.toLowerCase() == FNextLayer.toLowerCase()) == undefined) {
79
+ callbacks.reportMessage(KmwCompilerMessages.Warn_TouchLayoutMissingLayer({
80
+ keyId: FId,
81
+ layerId: layer.id,
82
+ nextLayer: FNextLayer,
83
+ platformName: platformId
84
+ }));
85
+ }
86
+ }
87
+ //
88
+ // Check that the key has a valid id // I4142
89
+ //
90
+ if (FId.trim() == '') {
91
+ if (!([TouchLayout.TouchLayoutKeySp.blank, TouchLayout.TouchLayoutKeySp.spacer].includes(FKeyType)) && FNextLayer == '') {
92
+ callbacks.reportMessage(KmwCompilerMessages.Warn_TouchLayoutUnidentifiedKey({ layerId: layer.id }));
93
+ }
94
+ return true;
95
+ }
96
+ let FValid = KeyIdType(FId);
97
+ if (FValid == TKeyIdType.Key_Invalid) {
98
+ callbacks.reportMessage(KmwCompilerMessages.Error_TouchLayoutInvalidIdentifier({ keyId: FId, platformName: platformId, layerId: layer.id }));
99
+ return false;
100
+ }
101
+ else if (FValid == TKeyIdType.Key_Unicode_Multi && !IsKeyboardVersion15OrLater()) {
102
+ callbacks.reportMessage(KmwCompilerMessages.Error_TouchLayoutIdentifierRequires15({ keyId: FId, platformName: platformId, layerId: layer.id }));
103
+ return false;
104
+ }
105
+ //
106
+ // Check that each custom key code has at least *a* rule associated with it
107
+ //
108
+ if (FValid == TKeyIdType.Key_Touch && FNextLayer == '' && [TouchLayout.TouchLayoutKeySp.normal, TouchLayout.TouchLayoutKeySp.deadkey].includes(FKeyType)) {
109
+ // Search for the key in the key dictionary - ignore K_LOPT, K_ROPT...
110
+ if (FDictionary.indexOf(FId) < 0) {
111
+ callbacks.reportMessage(KmwCompilerMessages.Warn_TouchLayoutCustomKeyNotDefined({ keyId: FId, platformName: platformId, layerId: layer.id }));
112
+ }
113
+ }
114
+ //
115
+ // Check that if the key has a *special* label, it is available in the target version
116
+ //
117
+ if (FText.startsWith('*') && FText.endsWith('*') && FText.length > 2) {
118
+ // Keyman versions before 14 do not support '*special*' labels on non-special keys.
119
+ // ZWNJ use, however, is safe because it will be transformed in function
120
+ // TransformSpecialKeys14 to '<|>', which does not require the custom OSK font.
121
+ if ((CSpecialText10.includes(FText) || CSpecialText14.includes(FText)) &&
122
+ !CSpecialText14ZWNJ.includes(FText) &&
123
+ !IsKeyboardVersion14OrLater() &&
124
+ !([TouchLayout.TouchLayoutKeySp.special, TouchLayout.TouchLayoutKeySp.specialActive].includes(FKeyType))) {
125
+ callbacks.reportMessage(KmwCompilerMessages.Warn_TouchLayoutSpecialLabelOnNormalKey({
126
+ keyId: FId,
127
+ platformName: platformId,
128
+ layerId: layer.id,
129
+ label: FText
130
+ }));
131
+ }
132
+ }
133
+ return true;
134
+ }
135
+ function CheckDictionaryKeyValidity(fk, FDictionary) {
136
+ // TODO: O(eeek) performance here
137
+ for (let i = 0; i < FDictionary.length; i++) {
138
+ if (FDictionary[i] == '') {
139
+ continue;
140
+ }
141
+ if ([TKeyIdType.Key_Invalid, TKeyIdType.Key_Constant].includes(KeyIdType(FDictionary[i]))) {
142
+ for (let fgp of fk.groups) {
143
+ if (fgp.fUsingKeys) {
144
+ for (let fkp of fgp.keys) {
145
+ if (JavaScript_Key(fkp, fk.isMnemonic) == i + 256) {
146
+ callbacks.reportMessage(KmwCompilerMessages.Error_InvalidKeyCode({ keyId: FDictionary[i] }));
147
+ }
148
+ }
149
+ }
150
+ }
151
+ }
152
+ }
153
+ }
154
+ function TransformSpecialKeys14(FDebug, sLayoutFile) {
155
+ // Rewrite Special key labels that are only supported in Keyman 14+
156
+ // This code is a little ugly but effective.
157
+ if (!IsKeyboardVersion14OrLater()) {
158
+ for (let i = 0; i < CSpecialText14Map.length; i++) {
159
+ // Assumes the JSON output format will not change
160
+ if (FDebug) {
161
+ sLayoutFile = sLayoutFile.replaceAll('"text": "' + CSpecialText14Map[i][0] + '"', '"text": this._v>13 ? "' + CSpecialText14Map[i][0] + '" : "' + CSpecialText14Map[i][1] + '"');
162
+ }
163
+ else {
164
+ sLayoutFile = sLayoutFile.replaceAll('"text":"' + CSpecialText14Map[i][0] + '"', '"text":this._v>13?"' + CSpecialText14Map[i][0] + '":"' + CSpecialText14Map[i][1] + '"');
165
+ }
166
+ }
167
+ }
168
+ return sLayoutFile;
169
+ }
170
+ export function ValidateLayoutFile(fk, FDebug, sLayoutFile, sVKDictionary, displayMap) {
171
+ let FDictionary = sVKDictionary.split(/\s+/);
172
+ CheckDictionaryKeyValidity(fk, FDictionary); // I4142
173
+ let reader = new TouchLayoutFileReader();
174
+ let data;
175
+ try {
176
+ data = reader.read(callbacks.loadFile(sLayoutFile));
177
+ if (!data) {
178
+ throw new Error('Unknown error reading touch layout file');
179
+ }
180
+ }
181
+ catch (e) {
182
+ callbacks.reportMessage(KmwCompilerMessages.Error_InvalidTouchLayoutFile({ msg: (e ?? 'Unspecified error').toString() }));
183
+ return { output: null, result: false };
184
+ }
185
+ let result = true;
186
+ let FTouchLayoutFont = ''; // I4872
187
+ let pid;
188
+ for (pid in data) {
189
+ let platform = data[pid];
190
+ // Test that the font matches on all platforms // I4872
191
+ if (FTouchLayoutFont == '') {
192
+ FTouchLayoutFont = platform.font?.toLowerCase() ?? '';
193
+ }
194
+ else if ((platform.font?.toLowerCase() ?? '') != FTouchLayoutFont) {
195
+ callbacks.reportMessage(KmwCompilerMessages.Warn_TouchLayoutFontShouldBeSameForAllPlatforms());
196
+ // TODO: why support multiple font values if it has to be the same across all platforms?!
197
+ }
198
+ // Test that all required keys are present
199
+ for (let layer of platform.layer) {
200
+ let FRequiredKeys = [];
201
+ for (let row of layer.row) {
202
+ for (let key of row.key) {
203
+ result = CheckKey(pid, platform, layer, key.id, key.text, key.nextlayer, key.sp, FRequiredKeys, FDictionary) && result; // I4119
204
+ if (key.sk) {
205
+ for (let subkey of key.sk) {
206
+ result = CheckKey(pid, platform, layer, subkey.id, subkey.text, subkey.nextlayer, subkey.sp, FRequiredKeys, FDictionary) && result;
207
+ }
208
+ }
209
+ let direction;
210
+ if (key.flick) {
211
+ for (direction in key.flick) {
212
+ result = CheckKey(pid, platform, layer, key.flick[direction].id, key.flick[direction].text, key.flick[direction].nextlayer, key.flick[direction].sp, FRequiredKeys, FDictionary) && result;
213
+ }
214
+ }
215
+ if (key.multitap) {
216
+ for (let subkey of key.multitap) {
217
+ result = CheckKey(pid, platform, layer, subkey.id, subkey.text, subkey.nextlayer, subkey.sp, FRequiredKeys, FDictionary) && result;
218
+ }
219
+ }
220
+ }
221
+ }
222
+ if (FRequiredKeys.length != CRequiredKeys.length) {
223
+ callbacks.reportMessage(KmwCompilerMessages.Warn_TouchLayoutMissingRequiredKeys({
224
+ layerId: layer.id,
225
+ platformName: pid,
226
+ missingKeys: CRequiredKeys.filter(x => !FRequiredKeys.includes(x)).join(', ')
227
+ }));
228
+ }
229
+ }
230
+ }
231
+ // Transform the layout keys with displayMap
232
+ if (displayMap) {
233
+ Osk.remapTouchLayout(data, displayMap);
234
+ }
235
+ // If not debugging, then this strips out formatting for a big saving in file size
236
+ // This also normalises any values such as Pad or Width which should be strings
237
+ let writer = new TouchLayoutFileWriter({ formatted: FDebug });
238
+ sLayoutFile = writer.compile(data);
239
+ sLayoutFile = TransformSpecialKeys14(FDebug, sLayoutFile);
240
+ return {
241
+ output: sLayoutFile,
242
+ result
243
+ };
244
+ }
245
+ //# debugId=c525678c-7471-51d2-bf5d-ab1d060c0a64
246
+ //# sourceMappingURL=validate-layout-file.js.map
@@ -0,0 +1 @@
1
+ {"debug_id":"c525678c-7471-51d2-bf5d-ab1d060c0a64","file":"validate-layout-file.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../../src/kmw-compiler/validate-layout-file.ts"],"version":3}
@@ -0,0 +1,5 @@
1
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="62a67657-72d7-5f2e-bc20-00420759e178")}catch(e){}}();
2
+ import { VisualKeyboard } from "@keymanapp/common-types";
3
+ export declare function VisualKeyboardFromFile(visualKeyboard: VisualKeyboard.VisualKeyboard, debug: boolean): string;
4
+ //# debugId=62a67657-72d7-5f2e-bc20-00420759e178
5
+ //# sourceMappingURL=visual-keyboard-compiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"debug_id":"62a67657-72d7-5f2e-bc20-00420759e178","file":"visual-keyboard-compiler.d.ts","mappings":";AAAA,OAAO,EAAgB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAKvE,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,cAAc,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAK5G","names":[],"sourceRoot":"","sources":["../../../src/kmw-compiler/visual-keyboard-compiler.ts"],"version":3}
@@ -0,0 +1,121 @@
1
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="cf95d865-d0fe-5012-a9e0-3a340bedce9d")}catch(e){}}();
2
+ import { KMX } from "@keymanapp/common-types";
3
+ import { FTabStop, nl } from "./compiler-globals.js";
4
+ import { CKeymanWebKeyCodes } from "./keymanweb-key-codes.js";
5
+ import { RequotedString } from "./kmw-compiler.js";
6
+ export function VisualKeyboardFromFile(visualKeyboard, debug) {
7
+ const f102 = visualKeyboard.header.flags & 1 /* KvkFile.BUILDER_KVK_HEADER_FLAGS.kvkh102 */ ? '1' : '0';
8
+ return `{F:' 1em "${RequotedString(visualKeyboard.header.unicodeFont.name, true)}"',K102:${f102}}` +
9
+ `;` + VisualKeyboardToKLS(visualKeyboard) +
10
+ ';' + BuildBKFromKLS(debug);
11
+ }
12
+ function WideQuote(s) {
13
+ let result = '';
14
+ for (let i = 0; i < s.length; i++) {
15
+ if (s[i] == '"' || s[i] == '\\') {
16
+ result += '\\' + s[i];
17
+ }
18
+ else {
19
+ result += s[i];
20
+ }
21
+ }
22
+ return result;
23
+ }
24
+ function VkShiftStateToKmxShiftState(ShiftState) {
25
+ const Map = [
26
+ { VK: 1 /* KvkFile.BUILDER_KVK_SHIFT_STATE.KVKS_SHIFT */, KMX: KMX.KMXFile.K_SHIFTFLAG },
27
+ { VK: 2 /* KvkFile.BUILDER_KVK_SHIFT_STATE.KVKS_CTRL */, KMX: KMX.KMXFile.K_CTRLFLAG },
28
+ { VK: 4 /* KvkFile.BUILDER_KVK_SHIFT_STATE.KVKS_ALT */, KMX: KMX.KMXFile.K_ALTFLAG },
29
+ { VK: 8 /* KvkFile.BUILDER_KVK_SHIFT_STATE.KVKS_LCTRL */, KMX: KMX.KMXFile.LCTRLFLAG },
30
+ { VK: 16 /* KvkFile.BUILDER_KVK_SHIFT_STATE.KVKS_RCTRL */, KMX: KMX.KMXFile.RCTRLFLAG },
31
+ { VK: 32 /* KvkFile.BUILDER_KVK_SHIFT_STATE.KVKS_LALT */, KMX: KMX.KMXFile.LALTFLAG },
32
+ { VK: 64 /* KvkFile.BUILDER_KVK_SHIFT_STATE.KVKS_RALT */, KMX: KMX.KMXFile.RALTFLAG }
33
+ ];
34
+ let result = 0;
35
+ for (let i = 0; i < Map.length; i++) {
36
+ if (ShiftState & Map[i].VK) {
37
+ result |= Map[i].KMX;
38
+ }
39
+ }
40
+ return result;
41
+ }
42
+ function VKShiftToLayerName(shift) {
43
+ const masks = [
44
+ 'leftctrl',
45
+ 'rightctrl',
46
+ 'leftalt',
47
+ 'rightalt',
48
+ 'shift',
49
+ 'ctrl',
50
+ 'alt'
51
+ ];
52
+ shift = VkShiftStateToKmxShiftState(shift);
53
+ if (shift == 0) {
54
+ return 'default';
55
+ }
56
+ let result = '';
57
+ for (let i = 0; i < masks.length; i++) {
58
+ if (shift & (1 << i)) {
59
+ result += masks[i] + '-';
60
+ }
61
+ }
62
+ return result.substring(0, result.length - 1);
63
+ }
64
+ function VisualKeyboardToKLS(FVK) {
65
+ ;
66
+ let layers = [];
67
+ // Discover the layers used in the visual keyboard
68
+ for (let key of FVK.keys) {
69
+ if (key.flags & 2 /* KvkFile.BUILDER_KVK_KEY_FLAGS.kvkkUnicode */) {
70
+ // Find the index of the key in KMW VK arrays
71
+ let n = CKeymanWebKeyCodes[key.vkey];
72
+ if (n == 0xFF) {
73
+ continue;
74
+ }
75
+ let layer = layers.find(layer => layer.shift == key.shift);
76
+ if (!layer) {
77
+ // 0-64 covers all possible VirtualKeyCodes in CKemyanWebKeyCodes
78
+ layer = { shift: key.shift, name: '', keys: new Array(65) };
79
+ layers.push(layer);
80
+ }
81
+ layer.keys[n] = key.text;
82
+ }
83
+ }
84
+ // Build the layer array
85
+ let result = nl + FTabStop + 'this.KV.KLS={' + nl;
86
+ for (let i = 0; i < layers.length; i++) {
87
+ let layer = layers[i];
88
+ result += `${FTabStop}${FTabStop}"${VKShiftToLayerName(layer.shift)}": [`;
89
+ for (let j = 0; j < layer.keys.length - 1; j++) {
90
+ result += '"' + WideQuote(layer.keys[j] ?? '') + '",';
91
+ }
92
+ result += '"' + WideQuote(layer.keys[layer.keys.length - 1] ?? '') + '"]';
93
+ if (i < layers.length - 1) {
94
+ result += ',' + nl;
95
+ }
96
+ }
97
+ result += nl + FTabStop + '}';
98
+ return result;
99
+ }
100
+ function BuildBKFromKLS(debug) {
101
+ const func = 'function(x){var e=Array.apply(null,Array(65)).map(String.prototype.valueOf,"")' +
102
+ ',r=[],v,i,m=[\'default\',\'shift\',\'ctrl\',\'shift-ctrl\',\'alt\',\'shift-alt\',' +
103
+ '\'ctrl-alt\',\'shift-ctrl-alt\'];for(i=m.length-1;i>=0;i--)if((v=x[m[i]])||r.length)' +
104
+ 'r=(v?v:e).slice().concat(r);return r}';
105
+ const func_debug = 'function(x){' + nl +
106
+ ' var' + nl +
107
+ ' empty=Array.apply(null, Array(65)).map(String.prototype.valueOf,""),' + nl +
108
+ ' result=[], v, i,' + nl +
109
+ ' modifiers=[\'default\',\'shift\',\'ctrl\',\'shift-ctrl\',\'alt\',\'shift-alt\',\'ctrl-alt\',\'shift-ctrl-alt\'];' + nl +
110
+ ' for(i=modifiers.length-1;i>=0;i--) {' + nl +
111
+ ' v = x[modifiers[i]];' + nl +
112
+ ' if(v || result.length > 0) {' + nl +
113
+ ' result=(v ? v : empty).slice().concat(result);' + nl +
114
+ ' }' + nl +
115
+ ' }' + nl +
116
+ ' return result;' + nl +
117
+ ' }';
118
+ return nl + FTabStop + 'this.KV.BK=(' + (debug ? func_debug : func) + ')(this.KV.KLS)';
119
+ }
120
+ //# debugId=cf95d865-d0fe-5012-a9e0-3a340bedce9d
121
+ //# sourceMappingURL=visual-keyboard-compiler.js.map
@@ -0,0 +1 @@
1
+ {"debug_id":"cf95d865-d0fe-5012-a9e0-3a340bedce9d","file":"visual-keyboard-compiler.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../../src/kmw-compiler/visual-keyboard-compiler.ts"],"version":3}
@@ -1,3 +1,6 @@
1
- export { CompilerMessages } from './compiler/messages.js';
2
- export { KmnCompiler } from './compiler/compiler.js';
3
- //# sourceMappingURL=main.d.ts.map
1
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ea702929-e411-57bf-b356-5e862eb47aff")}catch(e){}}();
2
+ export { KmnCompiler } from './compiler/compiler.js';
3
+ export { KmnCompilerMessages, CompilerMessages } from './compiler/messages.js';
4
+ export { KmwCompilerMessages } from './kmw-compiler/messages.js';
5
+ //# debugId=ea702929-e411-57bf-b356-5e862eb47aff
6
+ //# sourceMappingURL=main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"debug_id":"ea702929-e411-57bf-b356-5e862eb47aff","file":"main.d.ts","mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC","names":[],"sourceRoot":"","sources":["../../src/main.ts"],"version":3}
package/build/src/main.js CHANGED
@@ -1,3 +1,6 @@
1
- export { CompilerMessages } from './compiler/messages.js';
2
- export { KmnCompiler } from './compiler/compiler.js';
3
- //# sourceMappingURL=main.js.map
1
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="c3c3692b-46c7-5dbd-88ca-2c67c95d0d6a")}catch(e){}}();
2
+ export { KmnCompiler } from './compiler/compiler.js';
3
+ export { KmnCompilerMessages, CompilerMessages } from './compiler/messages.js';
4
+ export { KmwCompilerMessages } from './kmw-compiler/messages.js';
5
+ //# debugId=c3c3692b-46c7-5dbd-88ca-2c67c95d0d6a
6
+ //# sourceMappingURL=main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"debug_id":"c3c3692b-46c7-5dbd-88ca-2c67c95d0d6a","file":"main.js","mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC","names":[],"sourceRoot":"","sources":["../../src/main.ts"],"version":3}
package/package.json CHANGED
@@ -27,12 +27,14 @@
27
27
  "url": "https://github.com/keymanapp/keyman/issues"
28
28
  },
29
29
  "dependencies": {
30
- "@keymanapp/keyman-version": "17.0.155-alpha"
30
+ "@keymanapp/keyman-version": "17.0.156-alpha",
31
+ "@keymanapp/kmc-kmn": "17.0.156-alpha"
31
32
  },
32
33
  "devDependencies": {
34
+ "@keymanapp/developer-test-helpers": "17.0.156-alpha",
33
35
  "@types/chai": "^4.1.7",
34
36
  "@types/mocha": "^5.2.7",
35
- "@types/node": "^10.14.6",
37
+ "@types/node": "^20.4.1",
36
38
  "@types/semver": "^7.3.12",
37
39
  "@types/sinon": "^10.0.13",
38
40
  "@types/sinon-chai": "^3.2.9",
@@ -44,8 +46,7 @@
44
46
  "sinon": "^15.0.2",
45
47
  "sinon-chai": "^3.7.0",
46
48
  "ts-node": "^9.1.1",
47
- "typescript": "^4.9.5",
48
- "@keymanapp/developer-test-helpers": "17.0.155-alpha"
49
+ "typescript": "^4.9.5"
49
50
  },
50
51
  "mocha": {
51
52
  "spec": "build/test/**/test-*.js",
@@ -61,6 +62,7 @@
61
62
  "exclude-after-remap": true,
62
63
  "exclude": [
63
64
  "src/import/",
65
+ "src/kmw-compiler",
64
66
  "test/"
65
67
  ]
66
68
  },
@@ -68,5 +70,5 @@
68
70
  "type": "git",
69
71
  "url": "git+https://github.com/keymanapp/keyman.git"
70
72
  },
71
- "version": "17.0.155-alpha"
73
+ "version": "17.0.156-alpha"
72
74
  }