@keymanapp/common-types 17.0.299-beta → 17.0.301-beta

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 (142) 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.js +126 -125
  10. package/build/src/kmx/element-string.js.map +1 -1
  11. package/build/src/kmx/keyman-targets.js +80 -79
  12. package/build/src/kmx/keyman-targets.js.map +1 -1
  13. package/build/src/kmx/kmx-builder.js +190 -189
  14. package/build/src/kmx/kmx-builder.js.map +1 -1
  15. package/build/src/kmx/kmx-file-reader.js +135 -134
  16. package/build/src/kmx/kmx-file-reader.js.map +1 -1
  17. package/build/src/kmx/kmx-plus-builder/build-disp.js +28 -27
  18. package/build/src/kmx/kmx-plus-builder/build-disp.js.map +1 -1
  19. package/build/src/kmx/kmx-plus-builder/build-elem.js +90 -89
  20. package/build/src/kmx/kmx-plus-builder/build-elem.js.map +1 -1
  21. package/build/src/kmx/kmx-plus-builder/build-keys.js +108 -107
  22. package/build/src/kmx/kmx-plus-builder/build-keys.js.map +1 -1
  23. package/build/src/kmx/kmx-plus-builder/build-layr.js +102 -101
  24. package/build/src/kmx/kmx-plus-builder/build-layr.js.map +1 -1
  25. package/build/src/kmx/kmx-plus-builder/build-list.js +67 -66
  26. package/build/src/kmx/kmx-plus-builder/build-list.js.map +1 -1
  27. package/build/src/kmx/kmx-plus-builder/build-loca.js +22 -21
  28. package/build/src/kmx/kmx-plus-builder/build-loca.js.map +1 -1
  29. package/build/src/kmx/kmx-plus-builder/build-meta.js +23 -22
  30. package/build/src/kmx/kmx-plus-builder/build-meta.js.map +1 -1
  31. package/build/src/kmx/kmx-plus-builder/build-sect.js +16 -15
  32. package/build/src/kmx/kmx-plus-builder/build-sect.js.map +1 -1
  33. package/build/src/kmx/kmx-plus-builder/build-strs.js +47 -46
  34. package/build/src/kmx/kmx-plus-builder/build-strs.js.map +1 -1
  35. package/build/src/kmx/kmx-plus-builder/build-tran.js +70 -69
  36. package/build/src/kmx/kmx-plus-builder/build-tran.js.map +1 -1
  37. package/build/src/kmx/kmx-plus-builder/build-uset.js +61 -60
  38. package/build/src/kmx/kmx-plus-builder/build-uset.js.map +1 -1
  39. package/build/src/kmx/kmx-plus-builder/build-vars.js +49 -48
  40. package/build/src/kmx/kmx-plus-builder/build-vars.js.map +1 -1
  41. package/build/src/kmx/kmx-plus-builder/builder-section.js +5 -4
  42. package/build/src/kmx/kmx-plus-builder/builder-section.js.map +1 -1
  43. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.js +138 -137
  44. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.js.map +1 -1
  45. package/build/src/kmx/kmx-plus.js +831 -830
  46. package/build/src/kmx/kmx-plus.js.map +1 -1
  47. package/build/src/kmx/kmx.d.ts.map +1 -1
  48. package/build/src/kmx/kmx.js +303 -299
  49. package/build/src/kmx/kmx.js.map +1 -1
  50. package/build/src/kmx/string-list.js +89 -88
  51. package/build/src/kmx/string-list.js.map +1 -1
  52. package/build/src/kpj/keyman-developer-project.js +196 -195
  53. package/build/src/kpj/keyman-developer-project.js.map +1 -1
  54. package/build/src/kpj/kpj-file-reader.js +120 -119
  55. package/build/src/kpj/kpj-file-reader.js.map +1 -1
  56. package/build/src/kpj/kpj-file.js +13 -12
  57. package/build/src/kpj/kpj-file.js.map +1 -1
  58. package/build/src/kvk/kvk-file-reader.js +38 -37
  59. package/build/src/kvk/kvk-file-reader.js.map +1 -1
  60. package/build/src/kvk/kvk-file-writer.js +78 -77
  61. package/build/src/kvk/kvk-file-writer.js.map +1 -1
  62. package/build/src/kvk/kvk-file.js +91 -90
  63. package/build/src/kvk/kvk-file.js.map +1 -1
  64. package/build/src/kvk/kvks-file-reader.js +176 -175
  65. package/build/src/kvk/kvks-file-reader.js.map +1 -1
  66. package/build/src/kvk/kvks-file-writer.js +107 -106
  67. package/build/src/kvk/kvks-file-writer.js.map +1 -1
  68. package/build/src/kvk/kvks-file.js +12 -11
  69. package/build/src/kvk/kvks-file.js.map +1 -1
  70. package/build/src/kvk/visual-keyboard.js +76 -75
  71. package/build/src/kvk/visual-keyboard.js.map +1 -1
  72. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.js +22 -21
  73. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.js.map +1 -1
  74. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.js +410 -409
  75. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.js.map +1 -1
  76. package/build/src/ldml-keyboard/ldml-keyboard-xml.js +58 -57
  77. package/build/src/ldml-keyboard/ldml-keyboard-xml.js.map +1 -1
  78. package/build/src/ldml-keyboard/pattern-parser.js +491 -490
  79. package/build/src/ldml-keyboard/pattern-parser.js.map +1 -1
  80. package/build/src/ldml-keyboard/unicodeset-parser-api.js +30 -29
  81. package/build/src/ldml-keyboard/unicodeset-parser-api.js.map +1 -1
  82. package/build/src/main.js +35 -34
  83. package/build/src/main.js.map +1 -1
  84. package/build/src/package/kmp-json-file.js +4 -3
  85. package/build/src/package/kmp-json-file.js.map +1 -1
  86. package/build/src/package/kps-file.js +18 -17
  87. package/build/src/package/kps-file.js.map +1 -1
  88. package/build/src/schema-validators.js +28 -27
  89. package/build/src/schema-validators.js.map +1 -1
  90. package/build/src/schemas/displaymap.schema.js +38 -37
  91. package/build/src/schemas/displaymap.schema.js.map +1 -1
  92. package/build/src/schemas/displaymap.schema.validator.mjs +267 -266
  93. package/build/src/schemas/displaymap.schema.validator.mjs.map +1 -1
  94. package/build/src/schemas/keyboard_info.schema.js +101 -100
  95. package/build/src/schemas/keyboard_info.schema.js.map +1 -1
  96. package/build/src/schemas/keyboard_info.schema.validator.mjs +1161 -1160
  97. package/build/src/schemas/keyboard_info.schema.validator.mjs.map +1 -1
  98. package/build/src/schemas/keyman-touch-layout.clean.spec.js +154 -153
  99. package/build/src/schemas/keyman-touch-layout.clean.spec.js.map +1 -1
  100. package/build/src/schemas/keyman-touch-layout.clean.spec.validator.mjs +1095 -1094
  101. package/build/src/schemas/keyman-touch-layout.clean.spec.validator.mjs.map +1 -1
  102. package/build/src/schemas/keyman-touch-layout.spec.js +143 -142
  103. package/build/src/schemas/keyman-touch-layout.spec.js.map +1 -1
  104. package/build/src/schemas/keyman-touch-layout.spec.validator.mjs +1437 -1436
  105. package/build/src/schemas/keyman-touch-layout.spec.validator.mjs.map +1 -1
  106. package/build/src/schemas/kmp.schema.js +356 -355
  107. package/build/src/schemas/kmp.schema.js.map +1 -1
  108. package/build/src/schemas/kmp.schema.validator.mjs +1628 -1627
  109. package/build/src/schemas/kmp.schema.validator.mjs.map +1 -1
  110. package/build/src/schemas/kpj-9.0.schema.js +134 -133
  111. package/build/src/schemas/kpj-9.0.schema.js.map +1 -1
  112. package/build/src/schemas/kpj-9.0.schema.validator.mjs +656 -655
  113. package/build/src/schemas/kpj-9.0.schema.validator.mjs.map +1 -1
  114. package/build/src/schemas/kpj.schema.js +132 -131
  115. package/build/src/schemas/kpj.schema.js.map +1 -1
  116. package/build/src/schemas/kpj.schema.validator.mjs +516 -515
  117. package/build/src/schemas/kpj.schema.validator.mjs.map +1 -1
  118. package/build/src/schemas/kvks.schema.js +185 -184
  119. package/build/src/schemas/kvks.schema.js.map +1 -1
  120. package/build/src/schemas/kvks.schema.validator.mjs +626 -625
  121. package/build/src/schemas/kvks.schema.validator.mjs.map +1 -1
  122. package/build/src/schemas/ldml-keyboard3.schema.js +699 -698
  123. package/build/src/schemas/ldml-keyboard3.schema.js.map +1 -1
  124. package/build/src/schemas/ldml-keyboard3.schema.validator.mjs +3118 -3117
  125. package/build/src/schemas/ldml-keyboard3.schema.validator.mjs.map +1 -1
  126. package/build/src/schemas/ldml-keyboardtest3.schema.js +228 -227
  127. package/build/src/schemas/ldml-keyboardtest3.schema.js.map +1 -1
  128. package/build/src/schemas/ldml-keyboardtest3.schema.validator.mjs +745 -744
  129. package/build/src/schemas/ldml-keyboardtest3.schema.validator.mjs.map +1 -1
  130. package/build/src/schemas.js +26 -25
  131. package/build/src/schemas.js.map +1 -1
  132. package/build/src/util/common-events.js +29 -28
  133. package/build/src/util/common-events.js.map +1 -1
  134. package/build/src/util/compiler-interfaces.js +381 -380
  135. package/build/src/util/compiler-interfaces.js.map +1 -1
  136. package/build/src/util/errors.js +8 -7
  137. package/build/src/util/errors.js.map +1 -1
  138. package/build/src/util/file-types.js +143 -142
  139. package/build/src/util/file-types.js.map +1 -1
  140. package/build/src/util/util.js +369 -368
  141. package/build/src/util/util.js.map +1 -1
  142. 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"}