@keymanapp/common-types 18.0.16-alpha → 18.0.18-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 (147) hide show
  1. package/build/src/consts/virtual-key-constants.js +222 -221
  2. package/build/src/consts/virtual-key-constants.js.map +1 -1
  3. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.js +73 -72
  4. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.js.map +1 -1
  5. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.js +121 -120
  6. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.js.map +1 -1
  7. package/build/src/keyman-touch-layout/keyman-touch-layout-file.js +55 -54
  8. package/build/src/keyman-touch-layout/keyman-touch-layout-file.js.map +1 -1
  9. package/build/src/kmx/element-string.d.ts.map +1 -1
  10. package/build/src/kmx/element-string.js +126 -120
  11. package/build/src/kmx/element-string.js.map +1 -1
  12. package/build/src/kmx/keyman-targets.js +80 -79
  13. package/build/src/kmx/keyman-targets.js.map +1 -1
  14. package/build/src/kmx/kmx-builder.js +190 -189
  15. package/build/src/kmx/kmx-builder.js.map +1 -1
  16. package/build/src/kmx/kmx-file-reader.js +135 -134
  17. package/build/src/kmx/kmx-file-reader.js.map +1 -1
  18. package/build/src/kmx/kmx-plus-builder/build-disp.js +28 -27
  19. package/build/src/kmx/kmx-plus-builder/build-disp.js.map +1 -1
  20. package/build/src/kmx/kmx-plus-builder/build-elem.js +90 -89
  21. package/build/src/kmx/kmx-plus-builder/build-elem.js.map +1 -1
  22. package/build/src/kmx/kmx-plus-builder/build-keys.js +108 -107
  23. package/build/src/kmx/kmx-plus-builder/build-keys.js.map +1 -1
  24. package/build/src/kmx/kmx-plus-builder/build-layr.js +102 -101
  25. package/build/src/kmx/kmx-plus-builder/build-layr.js.map +1 -1
  26. package/build/src/kmx/kmx-plus-builder/build-list.js +67 -66
  27. package/build/src/kmx/kmx-plus-builder/build-list.js.map +1 -1
  28. package/build/src/kmx/kmx-plus-builder/build-loca.js +22 -21
  29. package/build/src/kmx/kmx-plus-builder/build-loca.js.map +1 -1
  30. package/build/src/kmx/kmx-plus-builder/build-meta.js +23 -22
  31. package/build/src/kmx/kmx-plus-builder/build-meta.js.map +1 -1
  32. package/build/src/kmx/kmx-plus-builder/build-sect.js +16 -15
  33. package/build/src/kmx/kmx-plus-builder/build-sect.js.map +1 -1
  34. package/build/src/kmx/kmx-plus-builder/build-strs.js +47 -46
  35. package/build/src/kmx/kmx-plus-builder/build-strs.js.map +1 -1
  36. package/build/src/kmx/kmx-plus-builder/build-tran.js +70 -69
  37. package/build/src/kmx/kmx-plus-builder/build-tran.js.map +1 -1
  38. package/build/src/kmx/kmx-plus-builder/build-uset.js +61 -60
  39. package/build/src/kmx/kmx-plus-builder/build-uset.js.map +1 -1
  40. package/build/src/kmx/kmx-plus-builder/build-vars.js +49 -48
  41. package/build/src/kmx/kmx-plus-builder/build-vars.js.map +1 -1
  42. package/build/src/kmx/kmx-plus-builder/builder-section.js +5 -4
  43. package/build/src/kmx/kmx-plus-builder/builder-section.js.map +1 -1
  44. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.js +138 -137
  45. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.js.map +1 -1
  46. package/build/src/kmx/kmx-plus.d.ts +3 -2
  47. package/build/src/kmx/kmx-plus.d.ts.map +1 -1
  48. package/build/src/kmx/kmx-plus.js +831 -823
  49. package/build/src/kmx/kmx-plus.js.map +1 -1
  50. package/build/src/kmx/kmx.d.ts.map +1 -1
  51. package/build/src/kmx/kmx.js +303 -299
  52. package/build/src/kmx/kmx.js.map +1 -1
  53. package/build/src/kmx/string-list.js +89 -88
  54. package/build/src/kmx/string-list.js.map +1 -1
  55. package/build/src/kpj/keyman-developer-project.js +196 -195
  56. package/build/src/kpj/keyman-developer-project.js.map +1 -1
  57. package/build/src/kpj/kpj-file-reader.js +120 -119
  58. package/build/src/kpj/kpj-file-reader.js.map +1 -1
  59. package/build/src/kpj/kpj-file.js +13 -12
  60. package/build/src/kpj/kpj-file.js.map +1 -1
  61. package/build/src/kvk/kvk-file-reader.js +38 -37
  62. package/build/src/kvk/kvk-file-reader.js.map +1 -1
  63. package/build/src/kvk/kvk-file-writer.js +78 -77
  64. package/build/src/kvk/kvk-file-writer.js.map +1 -1
  65. package/build/src/kvk/kvk-file.js +91 -90
  66. package/build/src/kvk/kvk-file.js.map +1 -1
  67. package/build/src/kvk/kvks-file-reader.js +176 -175
  68. package/build/src/kvk/kvks-file-reader.js.map +1 -1
  69. package/build/src/kvk/kvks-file-writer.js +107 -106
  70. package/build/src/kvk/kvks-file-writer.js.map +1 -1
  71. package/build/src/kvk/kvks-file.js +12 -11
  72. package/build/src/kvk/kvks-file.js.map +1 -1
  73. package/build/src/kvk/visual-keyboard.js +76 -75
  74. package/build/src/kvk/visual-keyboard.js.map +1 -1
  75. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.js +22 -21
  76. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.js.map +1 -1
  77. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.js +410 -409
  78. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.js.map +1 -1
  79. package/build/src/ldml-keyboard/ldml-keyboard-xml.js +58 -57
  80. package/build/src/ldml-keyboard/ldml-keyboard-xml.js.map +1 -1
  81. package/build/src/ldml-keyboard/pattern-parser.js +491 -490
  82. package/build/src/ldml-keyboard/pattern-parser.js.map +1 -1
  83. package/build/src/ldml-keyboard/unicodeset-parser-api.js +30 -29
  84. package/build/src/ldml-keyboard/unicodeset-parser-api.js.map +1 -1
  85. package/build/src/main.js +35 -34
  86. package/build/src/main.js.map +1 -1
  87. package/build/src/package/kmp-json-file.js +4 -3
  88. package/build/src/package/kmp-json-file.js.map +1 -1
  89. package/build/src/package/kps-file.js +18 -17
  90. package/build/src/package/kps-file.js.map +1 -1
  91. package/build/src/schema-validators.js +28 -27
  92. package/build/src/schema-validators.js.map +1 -1
  93. package/build/src/schemas/displaymap.schema.js +38 -37
  94. package/build/src/schemas/displaymap.schema.js.map +1 -1
  95. package/build/src/schemas/displaymap.schema.validator.mjs +267 -266
  96. package/build/src/schemas/displaymap.schema.validator.mjs.map +1 -1
  97. package/build/src/schemas/keyboard_info.schema.js +101 -100
  98. package/build/src/schemas/keyboard_info.schema.js.map +1 -1
  99. package/build/src/schemas/keyboard_info.schema.validator.mjs +1161 -1160
  100. package/build/src/schemas/keyboard_info.schema.validator.mjs.map +1 -1
  101. package/build/src/schemas/keyman-touch-layout.clean.spec.js +154 -153
  102. package/build/src/schemas/keyman-touch-layout.clean.spec.js.map +1 -1
  103. package/build/src/schemas/keyman-touch-layout.clean.spec.validator.mjs +1095 -1094
  104. package/build/src/schemas/keyman-touch-layout.clean.spec.validator.mjs.map +1 -1
  105. package/build/src/schemas/keyman-touch-layout.spec.js +143 -142
  106. package/build/src/schemas/keyman-touch-layout.spec.js.map +1 -1
  107. package/build/src/schemas/keyman-touch-layout.spec.validator.mjs +1437 -1436
  108. package/build/src/schemas/keyman-touch-layout.spec.validator.mjs.map +1 -1
  109. package/build/src/schemas/kmp.schema.js +356 -355
  110. package/build/src/schemas/kmp.schema.js.map +1 -1
  111. package/build/src/schemas/kmp.schema.validator.mjs +1628 -1627
  112. package/build/src/schemas/kmp.schema.validator.mjs.map +1 -1
  113. package/build/src/schemas/kpj-9.0.schema.js +134 -133
  114. package/build/src/schemas/kpj-9.0.schema.js.map +1 -1
  115. package/build/src/schemas/kpj-9.0.schema.validator.mjs +656 -655
  116. package/build/src/schemas/kpj-9.0.schema.validator.mjs.map +1 -1
  117. package/build/src/schemas/kpj.schema.js +132 -131
  118. package/build/src/schemas/kpj.schema.js.map +1 -1
  119. package/build/src/schemas/kpj.schema.validator.mjs +516 -515
  120. package/build/src/schemas/kpj.schema.validator.mjs.map +1 -1
  121. package/build/src/schemas/kvks.schema.js +185 -184
  122. package/build/src/schemas/kvks.schema.js.map +1 -1
  123. package/build/src/schemas/kvks.schema.validator.mjs +626 -625
  124. package/build/src/schemas/kvks.schema.validator.mjs.map +1 -1
  125. package/build/src/schemas/ldml-keyboard3.schema.js +699 -698
  126. package/build/src/schemas/ldml-keyboard3.schema.js.map +1 -1
  127. package/build/src/schemas/ldml-keyboard3.schema.validator.mjs +3118 -3117
  128. package/build/src/schemas/ldml-keyboard3.schema.validator.mjs.map +1 -1
  129. package/build/src/schemas/ldml-keyboardtest3.schema.js +228 -227
  130. package/build/src/schemas/ldml-keyboardtest3.schema.js.map +1 -1
  131. package/build/src/schemas/ldml-keyboardtest3.schema.validator.mjs +745 -744
  132. package/build/src/schemas/ldml-keyboardtest3.schema.validator.mjs.map +1 -1
  133. package/build/src/schemas.js +26 -25
  134. package/build/src/schemas.js.map +1 -1
  135. package/build/src/util/common-events.js +29 -28
  136. package/build/src/util/common-events.js.map +1 -1
  137. package/build/src/util/compiler-interfaces.js +381 -380
  138. package/build/src/util/compiler-interfaces.js.map +1 -1
  139. package/build/src/util/errors.js +8 -7
  140. package/build/src/util/errors.js.map +1 -1
  141. package/build/src/util/file-types.js +143 -142
  142. package/build/src/util/file-types.js.map +1 -1
  143. package/build/src/util/util.d.ts +4 -0
  144. package/build/src/util/util.d.ts.map +1 -1
  145. package/build/src/util/util.js +369 -362
  146. package/build/src/util/util.js.map +1 -1
  147. package/package.json +2 -2
@@ -1,91 +1,92 @@
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]="a7ecc217-2f34-5f58-ad32-2d479310411e")}catch(e){}}();
2
- import * as r from 'restructure';
3
- //
4
- // Binary backing structures for .kvk format
5
- // matching VisualKeyboardSaverBinary.pas
6
- //
7
- export const BUILDER_KVK_HEADER_IDENTIFIER = 0x464B564B; // 'KVKF', little-endian
8
- export const KVK_HEADER_IDENTIFIER_BYTES = [0x4B, 0x56, 0x4B, 0x46];
9
- export const BUILDER_KVK_HEADER_VERSION = 0x0600; // Keyman 6.0
10
- ;
11
- ;
12
- export const BUILDER_KVK_FONT_Size = 8; // size of fixed elements of BUILDER_KVK_FONT
13
- export var BUILDER_KVK_KEY_FLAGS;
14
- (function (BUILDER_KVK_KEY_FLAGS) {
15
- BUILDER_KVK_KEY_FLAGS[BUILDER_KVK_KEY_FLAGS["kvkkBitmap"] = 1] = "kvkkBitmap";
16
- BUILDER_KVK_KEY_FLAGS[BUILDER_KVK_KEY_FLAGS["kvkkUnicode"] = 2] = "kvkkUnicode";
17
- })(BUILDER_KVK_KEY_FLAGS || (BUILDER_KVK_KEY_FLAGS = {}));
18
- ;
19
- export var BUILDER_KVK_SHIFT_STATE;
20
- (function (BUILDER_KVK_SHIFT_STATE) {
21
- BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_NORMAL"] = 0] = "KVKS_NORMAL";
22
- BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_SHIFT"] = 1] = "KVKS_SHIFT";
23
- BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_CTRL"] = 2] = "KVKS_CTRL";
24
- BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_ALT"] = 4] = "KVKS_ALT";
25
- BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_LCTRL"] = 8] = "KVKS_LCTRL";
26
- BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_RCTRL"] = 16] = "KVKS_RCTRL";
27
- BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_LALT"] = 32] = "KVKS_LALT";
28
- BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_RALT"] = 64] = "KVKS_RALT";
29
- })(BUILDER_KVK_SHIFT_STATE || (BUILDER_KVK_SHIFT_STATE = {}));
30
- ;
31
- ;
32
- export const BUILDER_KVK_KEY_Size = 9; // size of fixed elements of BUILDER_KVK_KEY
33
- export var BUILDER_KVK_HEADER_FLAGS;
34
- (function (BUILDER_KVK_HEADER_FLAGS) {
35
- BUILDER_KVK_HEADER_FLAGS[BUILDER_KVK_HEADER_FLAGS["kvkhNone"] = 0] = "kvkhNone";
36
- BUILDER_KVK_HEADER_FLAGS[BUILDER_KVK_HEADER_FLAGS["kvkh102"] = 1] = "kvkh102";
37
- BUILDER_KVK_HEADER_FLAGS[BUILDER_KVK_HEADER_FLAGS["kvkhDisplayUnderlying"] = 2] = "kvkhDisplayUnderlying";
38
- BUILDER_KVK_HEADER_FLAGS[BUILDER_KVK_HEADER_FLAGS["kvkhUseUnderlying"] = 4] = "kvkhUseUnderlying";
39
- BUILDER_KVK_HEADER_FLAGS[BUILDER_KVK_HEADER_FLAGS["kvkhAltGr"] = 8] = "kvkhAltGr";
40
- })(BUILDER_KVK_HEADER_FLAGS || (BUILDER_KVK_HEADER_FLAGS = {}));
41
- ;
42
- ;
43
- export const BUILDER_KVK_HEADER_Size = 9 + BUILDER_KVK_FONT_Size + BUILDER_KVK_FONT_Size; // size of fixed elements of BUILDER_KVK_HEADER
44
- ;
45
- export default class KVKFile {
46
- KVK_HEADER;
47
- KVK_KEY;
48
- KVK_KEYS;
49
- KVK_FONT;
50
- KVK_FILE;
51
- KVK_STRING;
52
- constructor() {
53
- //
54
- // Binary restructure definitions matching VisualKeyboardSaverBinary.pas
55
- // TODO: move binaries to separate kvk-file.ts
56
- //
57
- this.KVK_STRING = new r.Struct({
58
- len: r.int16le,
59
- str: new r.String(null, 'utf16le')
60
- });
61
- this.KVK_FONT = new r.Struct({
62
- name: this.KVK_STRING,
63
- size: r.int32le,
64
- color: r.uint32le
65
- });
66
- this.KVK_KEY = new r.Struct({
67
- flags: r.uint8,
68
- shift: r.uint16le,
69
- vkey: r.uint16le,
70
- text: this.KVK_STRING,
71
- bitmapSize: r.uint32le,
72
- bitmapData: new r.Array(r.uint8, 'bitmapSize')
73
- });
74
- this.KVK_HEADER = new r.Struct({
75
- identifier: r.uint32le,
76
- version: r.uint32le,
77
- flags: r.uint8,
78
- associatedKeyboard: this.KVK_STRING,
79
- ansiFont: this.KVK_FONT,
80
- unicodeFont: this.KVK_FONT
81
- });
82
- this.KVK_FILE = new r.Struct({
83
- header: this.KVK_HEADER,
84
- keyCount: r.uint32le,
85
- keys: new r.Array(this.KVK_KEY, 'keyCount')
86
- });
87
- }
88
- }
89
- ;
90
- //# debugId=a7ecc217-2f34-5f58-ad32-2d479310411e
1
+
2
+ !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]="e81b06d2-c74b-5f12-adb4-7e451b4c4bdc")}catch(e){}}();
3
+ import * as r from 'restructure';
4
+ //
5
+ // Binary backing structures for .kvk format
6
+ // matching VisualKeyboardSaverBinary.pas
7
+ //
8
+ export const BUILDER_KVK_HEADER_IDENTIFIER = 0x464B564B; // 'KVKF', little-endian
9
+ export const KVK_HEADER_IDENTIFIER_BYTES = [0x4B, 0x56, 0x4B, 0x46];
10
+ export const BUILDER_KVK_HEADER_VERSION = 0x0600; // Keyman 6.0
11
+ ;
12
+ ;
13
+ export const BUILDER_KVK_FONT_Size = 8; // size of fixed elements of BUILDER_KVK_FONT
14
+ export var BUILDER_KVK_KEY_FLAGS;
15
+ (function (BUILDER_KVK_KEY_FLAGS) {
16
+ BUILDER_KVK_KEY_FLAGS[BUILDER_KVK_KEY_FLAGS["kvkkBitmap"] = 1] = "kvkkBitmap";
17
+ BUILDER_KVK_KEY_FLAGS[BUILDER_KVK_KEY_FLAGS["kvkkUnicode"] = 2] = "kvkkUnicode";
18
+ })(BUILDER_KVK_KEY_FLAGS || (BUILDER_KVK_KEY_FLAGS = {}));
19
+ ;
20
+ export var BUILDER_KVK_SHIFT_STATE;
21
+ (function (BUILDER_KVK_SHIFT_STATE) {
22
+ BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_NORMAL"] = 0] = "KVKS_NORMAL";
23
+ BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_SHIFT"] = 1] = "KVKS_SHIFT";
24
+ BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_CTRL"] = 2] = "KVKS_CTRL";
25
+ BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_ALT"] = 4] = "KVKS_ALT";
26
+ BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_LCTRL"] = 8] = "KVKS_LCTRL";
27
+ BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_RCTRL"] = 16] = "KVKS_RCTRL";
28
+ BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_LALT"] = 32] = "KVKS_LALT";
29
+ BUILDER_KVK_SHIFT_STATE[BUILDER_KVK_SHIFT_STATE["KVKS_RALT"] = 64] = "KVKS_RALT";
30
+ })(BUILDER_KVK_SHIFT_STATE || (BUILDER_KVK_SHIFT_STATE = {}));
31
+ ;
32
+ ;
33
+ export const BUILDER_KVK_KEY_Size = 9; // size of fixed elements of BUILDER_KVK_KEY
34
+ export var BUILDER_KVK_HEADER_FLAGS;
35
+ (function (BUILDER_KVK_HEADER_FLAGS) {
36
+ BUILDER_KVK_HEADER_FLAGS[BUILDER_KVK_HEADER_FLAGS["kvkhNone"] = 0] = "kvkhNone";
37
+ BUILDER_KVK_HEADER_FLAGS[BUILDER_KVK_HEADER_FLAGS["kvkh102"] = 1] = "kvkh102";
38
+ BUILDER_KVK_HEADER_FLAGS[BUILDER_KVK_HEADER_FLAGS["kvkhDisplayUnderlying"] = 2] = "kvkhDisplayUnderlying";
39
+ BUILDER_KVK_HEADER_FLAGS[BUILDER_KVK_HEADER_FLAGS["kvkhUseUnderlying"] = 4] = "kvkhUseUnderlying";
40
+ BUILDER_KVK_HEADER_FLAGS[BUILDER_KVK_HEADER_FLAGS["kvkhAltGr"] = 8] = "kvkhAltGr";
41
+ })(BUILDER_KVK_HEADER_FLAGS || (BUILDER_KVK_HEADER_FLAGS = {}));
42
+ ;
43
+ ;
44
+ export const BUILDER_KVK_HEADER_Size = 9 + BUILDER_KVK_FONT_Size + BUILDER_KVK_FONT_Size; // size of fixed elements of BUILDER_KVK_HEADER
45
+ ;
46
+ export default class KVKFile {
47
+ KVK_HEADER;
48
+ KVK_KEY;
49
+ KVK_KEYS;
50
+ KVK_FONT;
51
+ KVK_FILE;
52
+ KVK_STRING;
53
+ constructor() {
54
+ //
55
+ // Binary restructure definitions matching VisualKeyboardSaverBinary.pas
56
+ // TODO: move binaries to separate kvk-file.ts
57
+ //
58
+ this.KVK_STRING = new r.Struct({
59
+ len: r.int16le,
60
+ str: new r.String(null, 'utf16le')
61
+ });
62
+ this.KVK_FONT = new r.Struct({
63
+ name: this.KVK_STRING,
64
+ size: r.int32le,
65
+ color: r.uint32le
66
+ });
67
+ this.KVK_KEY = new r.Struct({
68
+ flags: r.uint8,
69
+ shift: r.uint16le,
70
+ vkey: r.uint16le,
71
+ text: this.KVK_STRING,
72
+ bitmapSize: r.uint32le,
73
+ bitmapData: new r.Array(r.uint8, 'bitmapSize')
74
+ });
75
+ this.KVK_HEADER = new r.Struct({
76
+ identifier: r.uint32le,
77
+ version: r.uint32le,
78
+ flags: r.uint8,
79
+ associatedKeyboard: this.KVK_STRING,
80
+ ansiFont: this.KVK_FONT,
81
+ unicodeFont: this.KVK_FONT
82
+ });
83
+ this.KVK_FILE = new r.Struct({
84
+ header: this.KVK_HEADER,
85
+ keyCount: r.uint32le,
86
+ keys: new r.Array(this.KVK_KEY, 'keyCount')
87
+ });
88
+ }
89
+ }
90
+ ;
91
91
  //# sourceMappingURL=kvk-file.js.map
92
+ //# debugId=e81b06d2-c74b-5f12-adb4-7e451b4c4bdc
@@ -1 +1 @@
1
- {"debug_id":"a7ecc217-2f34-5f58-ad32-2d479310411e","file":"kvk-file.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../../src/kvk/kvk-file.ts"],"version":3}
1
+ {"version":3,"file":"kvk-file.js","sources":["../../../src/kvk/kvk-file.ts"],"sourceRoot":"","names":[],"mappings":"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","debug_id":"e81b06d2-c74b-5f12-adb4-7e451b4c4bdc"}
@@ -1,176 +1,177 @@
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]="e6d13ab3-5f1e-5ee6-9908-81399fda5783")}catch(e){}}();
2
- import * as xml2js from 'xml2js';
3
- import { boxXmlArray } from '../util/util.js';
4
- import { DEFAULT_KVK_FONT, VisualKeyboardLegalShiftStates } from './visual-keyboard.js';
5
- import { USVirtualKeyCodes } from '../consts/virtual-key-constants.js';
6
- import { BUILDER_KVK_HEADER_VERSION, KVK_HEADER_IDENTIFIER_BYTES } from './kvk-file.js';
7
- import SchemaValidators from '../schema-validators.js';
8
- export default class KVKSFileReader {
9
- read(file) {
10
- let source;
11
- const parser = new xml2js.Parser({
12
- explicitArray: false,
13
- mergeAttrs: false,
14
- includeWhiteChars: true,
15
- normalize: false,
16
- emptyTag: {}
17
- // Why "as any"? xml2js is broken:
18
- // https://github.com/Leonidas-from-XIV/node-xml2js/issues/648 means
19
- // that an old version of `emptyTag` is used which doesn't support
20
- // functions, but DefinitelyTyped is requiring use of function or a
21
- // string. See also notes at
22
- // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/59259#issuecomment-1254405470
23
- // An alternative fix would be to pull xml2js directly from github
24
- // rather than using the version tagged on npmjs.com.
25
- });
26
- parser.parseString(file, (e, r) => {
27
- if (e) {
28
- if (file.byteLength > 4 && file.subarray(0, 3).every((v, i) => v == KVK_HEADER_IDENTIFIER_BYTES[i])) {
29
- throw new Error('File appears to be a binary .kvk file', { cause: e });
30
- }
31
- throw e;
32
- }
33
- ;
34
- source = r;
35
- });
36
- if (source) {
37
- source = this.boxArrays(source);
38
- this.cleanupFlags(source);
39
- this.cleanupUnderscore('visualkeyboard', source.visualkeyboard);
40
- }
41
- return source;
42
- }
43
- cleanupFlags(source) {
44
- if (source.visualkeyboard?.header?.flags === '') {
45
- source.visualkeyboard.header.flags = {};
46
- }
47
- }
48
- /**
49
- * The only element that allows spaces is <key>. Remove
50
- * all other empty whitespace-only values.
51
- * @param root
52
- * @param source
53
- */
54
- cleanupUnderscore(root, source) {
55
- if (root != 'key') {
56
- if (source?.['_']?.trim() === '') {
57
- delete source['_'];
58
- }
59
- }
60
- else {
61
- // If key text is pure whitespace, replace with empty string,
62
- // which matches kmcomp reader
63
- if (source?.['_']?.match(/^( +)$/)) {
64
- source['_'] = '';
65
- }
66
- }
67
- for (let key of Object.keys(source)) {
68
- if (Array.isArray(source[key])) {
69
- for (let item of source[key]) {
70
- if (typeof (item) === 'object') {
71
- this.cleanupUnderscore(key, item);
72
- }
73
- }
74
- }
75
- else if (typeof source[key] === 'object') {
76
- this.cleanupUnderscore(key, source[key]);
77
- }
78
- }
79
- }
80
- validate(source) {
81
- if (!SchemaValidators.kvks(source)) {
82
- throw new Error(JSON.stringify(SchemaValidators.kvks.errors));
83
- }
84
- }
85
- transform(source, invalidVkeys) {
86
- // NOTE: at this point, the xml should have been validated
87
- // and matched the schema result so we can assume properties exist
88
- let result = {
89
- header: {
90
- version: BUILDER_KVK_HEADER_VERSION,
91
- flags: 0,
92
- ansiFont: { ...DEFAULT_KVK_FONT },
93
- unicodeFont: { ...DEFAULT_KVK_FONT },
94
- associatedKeyboard: source.visualkeyboard?.header?.kbdname,
95
- underlyingLayout: source.visualkeyboard?.header?.layout,
96
- },
97
- keys: []
98
- };
99
- if (source.visualkeyboard?.header?.flags?.displayunderlying !== undefined) {
100
- result.header.flags |= 2 /* VisualKeyboardHeaderFlags.kvkhDisplayUnderlying */;
101
- }
102
- if (source.visualkeyboard?.header?.flags?.key102 !== undefined) {
103
- result.header.flags |= 1 /* VisualKeyboardHeaderFlags.kvkh102 */;
104
- }
105
- if (source.visualkeyboard?.header?.flags?.usealtgr !== undefined) {
106
- result.header.flags |= 8 /* VisualKeyboardHeaderFlags.kvkhAltGr */;
107
- }
108
- if (source.visualkeyboard?.header?.flags?.useunderlying !== undefined) {
109
- result.header.flags |= 4 /* VisualKeyboardHeaderFlags.kvkhUseUnderlying */;
110
- }
111
- for (let encoding of source.visualkeyboard.encoding) {
112
- let isUnicode = (encoding.$?.name == 'unicode'), font = isUnicode ? result.header.unicodeFont : result.header.ansiFont;
113
- font.name = encoding.$?.fontname ?? DEFAULT_KVK_FONT.name;
114
- font.size = parseInt(encoding.$?.fontsize ?? DEFAULT_KVK_FONT.size.toString(), 10);
115
- for (let layer of encoding.layer) {
116
- let shift = this.kvksShiftToKvkShift(layer.$?.shift);
117
- for (let sourceKey of layer.key) {
118
- let vkey = USVirtualKeyCodes[sourceKey.$?.vkey];
119
- if (!vkey) {
120
- if (typeof invalidVkeys !== 'undefined') {
121
- invalidVkeys.push(sourceKey.$?.vkey);
122
- }
123
- continue;
124
- }
125
- let key = {
126
- flags: (isUnicode ? 2 /* VisualKeyboardKeyFlags.kvkkUnicode */ : 0) |
127
- (sourceKey.bitmap ? 1 /* VisualKeyboardKeyFlags.kvkkBitmap */ : 0),
128
- shift: shift,
129
- text: sourceKey.bitmap ? '' : (sourceKey._ ?? ''),
130
- vkey: vkey
131
- };
132
- if (sourceKey.bitmap) {
133
- key.bitmap = this.base64ToArray(sourceKey.bitmap);
134
- }
135
- result.keys.push(key);
136
- }
137
- }
138
- }
139
- return result;
140
- }
141
- base64ToArray(source) {
142
- const binary = atob(source);
143
- const bytes = new Uint8Array(binary.length);
144
- for (let i = 0; i < binary.length; i++) {
145
- bytes[i] = binary.charCodeAt(i);
146
- }
147
- return bytes;
148
- }
149
- /**
150
- * xml2js will not place single-entry objects into arrays.
151
- * Easiest way to fix this is to box them ourselves as needed
152
- * @param source KVKSourceFile
153
- */
154
- boxArrays(source) {
155
- boxXmlArray(source.visualkeyboard, 'encoding');
156
- for (let encoding of source.visualkeyboard.encoding) {
157
- boxXmlArray(encoding, 'layer');
158
- for (let layer of encoding.layer) {
159
- boxXmlArray(layer, 'key');
160
- }
161
- }
162
- return source;
163
- }
164
- kvksShiftToKvkShift(shift) {
165
- shift = shift.toUpperCase();
166
- // TODO-LDML(lowpri): make a map of this?
167
- for (let state of VisualKeyboardLegalShiftStates) {
168
- if (state.name == shift) {
169
- return state.shift;
170
- }
171
- }
172
- return 0;
173
- }
174
- }
175
- //# debugId=e6d13ab3-5f1e-5ee6-9908-81399fda5783
1
+
2
+ !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]="664396d1-231b-5c77-b177-a5d94976b113")}catch(e){}}();
3
+ import * as xml2js from 'xml2js';
4
+ import { boxXmlArray } from '../util/util.js';
5
+ import { DEFAULT_KVK_FONT, VisualKeyboardLegalShiftStates } from './visual-keyboard.js';
6
+ import { USVirtualKeyCodes } from '../consts/virtual-key-constants.js';
7
+ import { BUILDER_KVK_HEADER_VERSION, KVK_HEADER_IDENTIFIER_BYTES } from './kvk-file.js';
8
+ import SchemaValidators from '../schema-validators.js';
9
+ export default class KVKSFileReader {
10
+ read(file) {
11
+ let source;
12
+ const parser = new xml2js.Parser({
13
+ explicitArray: false,
14
+ mergeAttrs: false,
15
+ includeWhiteChars: true,
16
+ normalize: false,
17
+ emptyTag: {}
18
+ // Why "as any"? xml2js is broken:
19
+ // https://github.com/Leonidas-from-XIV/node-xml2js/issues/648 means
20
+ // that an old version of `emptyTag` is used which doesn't support
21
+ // functions, but DefinitelyTyped is requiring use of function or a
22
+ // string. See also notes at
23
+ // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/59259#issuecomment-1254405470
24
+ // An alternative fix would be to pull xml2js directly from github
25
+ // rather than using the version tagged on npmjs.com.
26
+ });
27
+ parser.parseString(file, (e, r) => {
28
+ if (e) {
29
+ if (file.byteLength > 4 && file.subarray(0, 3).every((v, i) => v == KVK_HEADER_IDENTIFIER_BYTES[i])) {
30
+ throw new Error('File appears to be a binary .kvk file', { cause: e });
31
+ }
32
+ throw e;
33
+ }
34
+ ;
35
+ source = r;
36
+ });
37
+ if (source) {
38
+ source = this.boxArrays(source);
39
+ this.cleanupFlags(source);
40
+ this.cleanupUnderscore('visualkeyboard', source.visualkeyboard);
41
+ }
42
+ return source;
43
+ }
44
+ cleanupFlags(source) {
45
+ if (source.visualkeyboard?.header?.flags === '') {
46
+ source.visualkeyboard.header.flags = {};
47
+ }
48
+ }
49
+ /**
50
+ * The only element that allows spaces is <key>. Remove
51
+ * all other empty whitespace-only values.
52
+ * @param root
53
+ * @param source
54
+ */
55
+ cleanupUnderscore(root, source) {
56
+ if (root != 'key') {
57
+ if (source?.['_']?.trim() === '') {
58
+ delete source['_'];
59
+ }
60
+ }
61
+ else {
62
+ // If key text is pure whitespace, replace with empty string,
63
+ // which matches kmcomp reader
64
+ if (source?.['_']?.match(/^( +)$/)) {
65
+ source['_'] = '';
66
+ }
67
+ }
68
+ for (let key of Object.keys(source)) {
69
+ if (Array.isArray(source[key])) {
70
+ for (let item of source[key]) {
71
+ if (typeof (item) === 'object') {
72
+ this.cleanupUnderscore(key, item);
73
+ }
74
+ }
75
+ }
76
+ else if (typeof source[key] === 'object') {
77
+ this.cleanupUnderscore(key, source[key]);
78
+ }
79
+ }
80
+ }
81
+ validate(source) {
82
+ if (!SchemaValidators.kvks(source)) {
83
+ throw new Error(JSON.stringify(SchemaValidators.kvks.errors));
84
+ }
85
+ }
86
+ transform(source, invalidVkeys) {
87
+ // NOTE: at this point, the xml should have been validated
88
+ // and matched the schema result so we can assume properties exist
89
+ let result = {
90
+ header: {
91
+ version: BUILDER_KVK_HEADER_VERSION,
92
+ flags: 0,
93
+ ansiFont: { ...DEFAULT_KVK_FONT },
94
+ unicodeFont: { ...DEFAULT_KVK_FONT },
95
+ associatedKeyboard: source.visualkeyboard?.header?.kbdname,
96
+ underlyingLayout: source.visualkeyboard?.header?.layout,
97
+ },
98
+ keys: []
99
+ };
100
+ if (source.visualkeyboard?.header?.flags?.displayunderlying !== undefined) {
101
+ result.header.flags |= 2 /* VisualKeyboardHeaderFlags.kvkhDisplayUnderlying */;
102
+ }
103
+ if (source.visualkeyboard?.header?.flags?.key102 !== undefined) {
104
+ result.header.flags |= 1 /* VisualKeyboardHeaderFlags.kvkh102 */;
105
+ }
106
+ if (source.visualkeyboard?.header?.flags?.usealtgr !== undefined) {
107
+ result.header.flags |= 8 /* VisualKeyboardHeaderFlags.kvkhAltGr */;
108
+ }
109
+ if (source.visualkeyboard?.header?.flags?.useunderlying !== undefined) {
110
+ result.header.flags |= 4 /* VisualKeyboardHeaderFlags.kvkhUseUnderlying */;
111
+ }
112
+ for (let encoding of source.visualkeyboard.encoding) {
113
+ let isUnicode = (encoding.$?.name == 'unicode'), font = isUnicode ? result.header.unicodeFont : result.header.ansiFont;
114
+ font.name = encoding.$?.fontname ?? DEFAULT_KVK_FONT.name;
115
+ font.size = parseInt(encoding.$?.fontsize ?? DEFAULT_KVK_FONT.size.toString(), 10);
116
+ for (let layer of encoding.layer) {
117
+ let shift = this.kvksShiftToKvkShift(layer.$?.shift);
118
+ for (let sourceKey of layer.key) {
119
+ let vkey = USVirtualKeyCodes[sourceKey.$?.vkey];
120
+ if (!vkey) {
121
+ if (typeof invalidVkeys !== 'undefined') {
122
+ invalidVkeys.push(sourceKey.$?.vkey);
123
+ }
124
+ continue;
125
+ }
126
+ let key = {
127
+ flags: (isUnicode ? 2 /* VisualKeyboardKeyFlags.kvkkUnicode */ : 0) |
128
+ (sourceKey.bitmap ? 1 /* VisualKeyboardKeyFlags.kvkkBitmap */ : 0),
129
+ shift: shift,
130
+ text: sourceKey.bitmap ? '' : (sourceKey._ ?? ''),
131
+ vkey: vkey
132
+ };
133
+ if (sourceKey.bitmap) {
134
+ key.bitmap = this.base64ToArray(sourceKey.bitmap);
135
+ }
136
+ result.keys.push(key);
137
+ }
138
+ }
139
+ }
140
+ return result;
141
+ }
142
+ base64ToArray(source) {
143
+ const binary = atob(source);
144
+ const bytes = new Uint8Array(binary.length);
145
+ for (let i = 0; i < binary.length; i++) {
146
+ bytes[i] = binary.charCodeAt(i);
147
+ }
148
+ return bytes;
149
+ }
150
+ /**
151
+ * xml2js will not place single-entry objects into arrays.
152
+ * Easiest way to fix this is to box them ourselves as needed
153
+ * @param source KVKSourceFile
154
+ */
155
+ boxArrays(source) {
156
+ boxXmlArray(source.visualkeyboard, 'encoding');
157
+ for (let encoding of source.visualkeyboard.encoding) {
158
+ boxXmlArray(encoding, 'layer');
159
+ for (let layer of encoding.layer) {
160
+ boxXmlArray(layer, 'key');
161
+ }
162
+ }
163
+ return source;
164
+ }
165
+ kvksShiftToKvkShift(shift) {
166
+ shift = shift.toUpperCase();
167
+ // TODO-LDML(lowpri): make a map of this?
168
+ for (let state of VisualKeyboardLegalShiftStates) {
169
+ if (state.name == shift) {
170
+ return state.shift;
171
+ }
172
+ }
173
+ return 0;
174
+ }
175
+ }
176
176
  //# sourceMappingURL=kvks-file-reader.js.map
177
+ //# debugId=664396d1-231b-5c77-b177-a5d94976b113
@@ -1 +1 @@
1
- {"debug_id":"e6d13ab3-5f1e-5ee6-9908-81399fda5783","file":"kvks-file-reader.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../../src/kvk/kvks-file-reader.ts"],"version":3}
1
+ {"version":3,"file":"kvks-file-reader.js","sources":["../../../src/kvk/kvks-file-reader.ts"],"sourceRoot":"","names":[],"mappings":"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","debug_id":"664396d1-231b-5c77-b177-a5d94976b113"}