@keymanapp/common-types 18.0.41-alpha → 18.0.46-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 (189) hide show
  1. package/build/src/consts/virtual-key-constants.d.ts +191 -191
  2. package/build/src/consts/virtual-key-constants.js +221 -221
  3. package/build/src/consts/virtual-key-constants.js.map +1 -1
  4. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.d.ts +5 -5
  5. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.js +72 -72
  6. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.js.map +1 -1
  7. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.d.ts +28 -28
  8. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.js +120 -120
  9. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.js.map +1 -1
  10. package/build/src/keyman-touch-layout/keyman-touch-layout-file.d.ts +95 -95
  11. package/build/src/keyman-touch-layout/keyman-touch-layout-file.js +52 -52
  12. package/build/src/kmx/element-string.d.ts +23 -23
  13. package/build/src/kmx/element-string.js +125 -125
  14. package/build/src/kmx/element-string.js.map +1 -1
  15. package/build/src/kmx/keyman-targets.d.ts +20 -20
  16. package/build/src/kmx/keyman-targets.js +79 -79
  17. package/build/src/kmx/keyman-targets.js.map +1 -1
  18. package/build/src/kmx/kmx-builder.d.ts +32 -32
  19. package/build/src/kmx/kmx-builder.js +189 -189
  20. package/build/src/kmx/kmx-builder.js.map +1 -1
  21. package/build/src/kmx/kmx-file-reader.d.ts +13 -13
  22. package/build/src/kmx/kmx-file-reader.js +134 -134
  23. package/build/src/kmx/kmx-file-reader.js.map +1 -1
  24. package/build/src/kmx/kmx-plus-builder/build-disp.d.ts +18 -18
  25. package/build/src/kmx/kmx-plus-builder/build-disp.js +27 -27
  26. package/build/src/kmx/kmx-plus-builder/build-disp.js.map +1 -1
  27. package/build/src/kmx/kmx-plus-builder/build-elem.d.ts +28 -28
  28. package/build/src/kmx/kmx-plus-builder/build-elem.js +89 -89
  29. package/build/src/kmx/kmx-plus-builder/build-elem.js.map +1 -1
  30. package/build/src/kmx/kmx-plus-builder/build-keys.d.ts +56 -56
  31. package/build/src/kmx/kmx-plus-builder/build-keys.js +107 -107
  32. package/build/src/kmx/kmx-plus-builder/build-keys.js.map +1 -1
  33. package/build/src/kmx/kmx-plus-builder/build-layr.d.ts +53 -53
  34. package/build/src/kmx/kmx-plus-builder/build-layr.js +101 -101
  35. package/build/src/kmx/kmx-plus-builder/build-layr.js.map +1 -1
  36. package/build/src/kmx/kmx-plus-builder/build-list.d.ts +35 -35
  37. package/build/src/kmx/kmx-plus-builder/build-list.js +66 -66
  38. package/build/src/kmx/kmx-plus-builder/build-list.js.map +1 -1
  39. package/build/src/kmx/kmx-plus-builder/build-loca.d.ts +11 -11
  40. package/build/src/kmx/kmx-plus-builder/build-loca.js +21 -21
  41. package/build/src/kmx/kmx-plus-builder/build-loca.js.map +1 -1
  42. package/build/src/kmx/kmx-plus-builder/build-meta.d.ts +16 -16
  43. package/build/src/kmx/kmx-plus-builder/build-meta.js +20 -20
  44. package/build/src/kmx/kmx-plus-builder/build-sect.d.ts +15 -15
  45. package/build/src/kmx/kmx-plus-builder/build-sect.js +15 -15
  46. package/build/src/kmx/kmx-plus-builder/build-sect.js.map +1 -1
  47. package/build/src/kmx/kmx-plus-builder/build-strs.d.ts +22 -22
  48. package/build/src/kmx/kmx-plus-builder/build-strs.js +46 -46
  49. package/build/src/kmx/kmx-plus-builder/build-strs.js.map +1 -1
  50. package/build/src/kmx/kmx-plus-builder/build-tran.d.ts +32 -32
  51. package/build/src/kmx/kmx-plus-builder/build-tran.js +69 -69
  52. package/build/src/kmx/kmx-plus-builder/build-tran.js.map +1 -1
  53. package/build/src/kmx/kmx-plus-builder/build-uset.d.ts +30 -30
  54. package/build/src/kmx/kmx-plus-builder/build-uset.js +60 -60
  55. package/build/src/kmx/kmx-plus-builder/build-uset.js.map +1 -1
  56. package/build/src/kmx/kmx-plus-builder/build-vars.d.ts +21 -21
  57. package/build/src/kmx/kmx-plus-builder/build-vars.js +48 -48
  58. package/build/src/kmx/kmx-plus-builder/build-vars.js.map +1 -1
  59. package/build/src/kmx/kmx-plus-builder/builder-section.d.ts +9 -9
  60. package/build/src/kmx/kmx-plus-builder/builder-section.js +2 -2
  61. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.d.ts +42 -42
  62. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.js +137 -137
  63. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.js.map +1 -1
  64. package/build/src/kmx/kmx-plus.d.ts +322 -322
  65. package/build/src/kmx/kmx-plus.js +830 -830
  66. package/build/src/kmx/kmx-plus.js.map +1 -1
  67. package/build/src/kmx/kmx.d.ts +233 -233
  68. package/build/src/kmx/kmx.js +302 -302
  69. package/build/src/kmx/kmx.js.map +1 -1
  70. package/build/src/kmx/string-list.d.ts +35 -35
  71. package/build/src/kmx/string-list.js +88 -88
  72. package/build/src/kmx/string-list.js.map +1 -1
  73. package/build/src/kpj/keyman-developer-project.d.ts +78 -78
  74. package/build/src/kpj/keyman-developer-project.js +195 -195
  75. package/build/src/kpj/keyman-developer-project.js.map +1 -1
  76. package/build/src/kpj/kpj-file-reader.d.ts +18 -18
  77. package/build/src/kpj/kpj-file-reader.js +119 -119
  78. package/build/src/kpj/kpj-file-reader.js.map +1 -1
  79. package/build/src/kpj/kpj-file.d.ts +39 -39
  80. package/build/src/kpj/kpj-file.js +10 -10
  81. package/build/src/kvk/kvk-file-reader.d.ts +4 -4
  82. package/build/src/kvk/kvk-file-reader.js +37 -37
  83. package/build/src/kvk/kvk-file-reader.js.map +1 -1
  84. package/build/src/kvk/kvk-file-writer.d.ts +19 -19
  85. package/build/src/kvk/kvk-file-writer.js +77 -77
  86. package/build/src/kvk/kvk-file-writer.js.map +1 -1
  87. package/build/src/kvk/kvk-file.d.ts +66 -66
  88. package/build/src/kvk/kvk-file.d.ts.map +1 -1
  89. package/build/src/kvk/kvk-file.js +90 -90
  90. package/build/src/kvk/kvk-file.js.map +1 -1
  91. package/build/src/kvk/kvks-file-reader.d.ts +23 -23
  92. package/build/src/kvk/kvks-file-reader.js +175 -175
  93. package/build/src/kvk/kvks-file-reader.js.map +1 -1
  94. package/build/src/kvk/kvks-file-writer.d.ts +6 -6
  95. package/build/src/kvk/kvks-file-writer.js +106 -106
  96. package/build/src/kvk/kvks-file-writer.js.map +1 -1
  97. package/build/src/kvk/kvks-file.d.ts +43 -43
  98. package/build/src/kvk/kvks-file.js +9 -9
  99. package/build/src/kvk/visual-keyboard.d.ts +44 -44
  100. package/build/src/kvk/visual-keyboard.js +75 -75
  101. package/build/src/kvk/visual-keyboard.js.map +1 -1
  102. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.d.ts +60 -60
  103. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.js +19 -19
  104. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.d.ts +95 -95
  105. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.js +409 -409
  106. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.js.map +1 -1
  107. package/build/src/ldml-keyboard/ldml-keyboard-xml.d.ts +170 -170
  108. package/build/src/ldml-keyboard/ldml-keyboard-xml.js +55 -55
  109. package/build/src/ldml-keyboard/pattern-parser.d.ts +201 -201
  110. package/build/src/ldml-keyboard/pattern-parser.js +490 -490
  111. package/build/src/ldml-keyboard/pattern-parser.js.map +1 -1
  112. package/build/src/ldml-keyboard/unicodeset-parser-api.d.ts +37 -37
  113. package/build/src/ldml-keyboard/unicodeset-parser-api.js +27 -27
  114. package/build/src/main.d.ts +33 -33
  115. package/build/src/main.js +32 -32
  116. package/build/src/package/kmp-json-file.d.ts +115 -115
  117. package/build/src/package/kmp-json-file.js +1 -1
  118. package/build/src/package/kps-file.d.ts +175 -175
  119. package/build/src/package/kps-file.js +15 -15
  120. package/build/src/schema-validators.d.ts +13 -13
  121. package/build/src/schema-validators.js +25 -25
  122. package/build/src/schemas/displaymap.schema.d.ts +57 -57
  123. package/build/src/schemas/displaymap.schema.js +35 -35
  124. package/build/src/schemas/displaymap.schema.validator.d.mts +2 -2
  125. package/build/src/schemas/displaymap.schema.validator.mjs +266 -266
  126. package/build/src/schemas/displaymap.schema.validator.mjs.map +1 -1
  127. package/build/src/schemas/keyboard_info.schema.d.ts +209 -209
  128. package/build/src/schemas/keyboard_info.schema.js +98 -98
  129. package/build/src/schemas/keyboard_info.schema.validator.d.mts +2 -2
  130. package/build/src/schemas/keyboard_info.schema.validator.mjs +1160 -1160
  131. package/build/src/schemas/keyboard_info.schema.validator.mjs.map +1 -1
  132. package/build/src/schemas/keyman-touch-layout.clean.spec.d.ts +227 -227
  133. package/build/src/schemas/keyman-touch-layout.clean.spec.js +151 -151
  134. package/build/src/schemas/keyman-touch-layout.clean.spec.validator.d.mts +2 -2
  135. package/build/src/schemas/keyman-touch-layout.clean.spec.validator.mjs +1094 -1094
  136. package/build/src/schemas/keyman-touch-layout.clean.spec.validator.mjs.map +1 -1
  137. package/build/src/schemas/keyman-touch-layout.spec.d.ts +229 -229
  138. package/build/src/schemas/keyman-touch-layout.spec.js +140 -140
  139. package/build/src/schemas/keyman-touch-layout.spec.validator.d.mts +2 -2
  140. package/build/src/schemas/keyman-touch-layout.spec.validator.mjs +1436 -1436
  141. package/build/src/schemas/keyman-touch-layout.spec.validator.mjs.map +1 -1
  142. package/build/src/schemas/kmp.schema.d.ts +324 -324
  143. package/build/src/schemas/kmp.schema.js +353 -353
  144. package/build/src/schemas/kmp.schema.validator.d.mts +2 -2
  145. package/build/src/schemas/kmp.schema.validator.mjs +1627 -1627
  146. package/build/src/schemas/kmp.schema.validator.mjs.map +1 -1
  147. package/build/src/schemas/kpj-9.0.schema.d.ts +152 -152
  148. package/build/src/schemas/kpj-9.0.schema.js +131 -131
  149. package/build/src/schemas/kpj-9.0.schema.validator.d.mts +2 -2
  150. package/build/src/schemas/kpj-9.0.schema.validator.mjs +655 -655
  151. package/build/src/schemas/kpj-9.0.schema.validator.mjs.map +1 -1
  152. package/build/src/schemas/kpj.schema.d.ts +122 -122
  153. package/build/src/schemas/kpj.schema.js +129 -129
  154. package/build/src/schemas/kpj.schema.validator.d.mts +2 -2
  155. package/build/src/schemas/kpj.schema.validator.mjs +515 -515
  156. package/build/src/schemas/kpj.schema.validator.mjs.map +1 -1
  157. package/build/src/schemas/kvks.schema.d.ts +160 -160
  158. package/build/src/schemas/kvks.schema.js +182 -182
  159. package/build/src/schemas/kvks.schema.validator.d.mts +2 -2
  160. package/build/src/schemas/kvks.schema.validator.mjs +625 -625
  161. package/build/src/schemas/kvks.schema.validator.mjs.map +1 -1
  162. package/build/src/schemas/ldml-keyboard3.schema.d.ts +635 -635
  163. package/build/src/schemas/ldml-keyboard3.schema.js +696 -696
  164. package/build/src/schemas/ldml-keyboard3.schema.validator.d.mts +2 -2
  165. package/build/src/schemas/ldml-keyboard3.schema.validator.mjs +3117 -3117
  166. package/build/src/schemas/ldml-keyboard3.schema.validator.mjs.map +1 -1
  167. package/build/src/schemas/ldml-keyboardtest3.schema.d.ts +192 -192
  168. package/build/src/schemas/ldml-keyboardtest3.schema.js +225 -225
  169. package/build/src/schemas/ldml-keyboardtest3.schema.validator.d.mts +2 -2
  170. package/build/src/schemas/ldml-keyboardtest3.schema.validator.mjs +744 -744
  171. package/build/src/schemas/ldml-keyboardtest3.schema.validator.mjs.map +1 -1
  172. package/build/src/schemas.d.ts +2300 -2300
  173. package/build/src/schemas.js +23 -23
  174. package/build/src/util/common-events.d.ts +44 -44
  175. package/build/src/util/common-events.js +26 -26
  176. package/build/src/util/compiler-interfaces.d.ts +371 -371
  177. package/build/src/util/compiler-interfaces.d.ts.map +1 -1
  178. package/build/src/util/compiler-interfaces.js +380 -380
  179. package/build/src/util/compiler-interfaces.js.map +1 -1
  180. package/build/src/util/errors.d.ts +5 -5
  181. package/build/src/util/errors.js +5 -5
  182. package/build/src/util/file-types.d.ts +93 -93
  183. package/build/src/util/file-types.d.ts.map +1 -1
  184. package/build/src/util/file-types.js +142 -142
  185. package/build/src/util/file-types.js.map +1 -1
  186. package/build/src/util/util.d.ts +98 -98
  187. package/build/src/util/util.js +368 -368
  188. package/build/src/util/util.js.map +1 -1
  189. package/package.json +3 -3
@@ -1,191 +1,191 @@
1
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]="ce61d76e-ecd9-5633-8389-f26e6ec9bafb")}catch(e){}}();
3
- import * as r from 'restructure';
4
- import { KMXFile } from './kmx.js';
5
- import { KMXPlusFile } from './kmx-plus.js';
6
- import KMXPlusBuilder from './kmx-plus-builder/kmx-plus-builder.js';
7
- export default class KMXBuilder {
8
- file;
9
- base_keyboard = 0;
10
- base_kmxplus = 0;
11
- comp_header;
12
- comp_kmxplus;
13
- comp_stores = [];
14
- comp_groups = [];
15
- comp_kmxplus_data;
16
- writeDebug = false;
17
- constructor(file, writeDebug) {
18
- this.file = file;
19
- this.writeDebug = writeDebug;
20
- }
21
- calculateStringOffsetAndSize(string, base, requireString = false) {
22
- if (string.length == 0 && !requireString) {
23
- // Zero length strings take up no space in the file, and
24
- // are treated as a 'null string'
25
- return [0, base];
26
- }
27
- return [base, base + string.length * 2 + 2]; // include trailing zero
28
- }
29
- build() {
30
- this.base_keyboard = 0;
31
- this.base_kmxplus = 0;
32
- // Header
33
- this.comp_header = {
34
- dwIdentifier: KMXFile.FILEID_COMPILED,
35
- dwFileVersion: KMXFile.VERSION_170,
36
- dwCheckSum: 0,
37
- KeyboardID: 0,
38
- IsRegistered: 1,
39
- version: 0,
40
- cxStoreArray: 0,
41
- cxGroupArray: 0,
42
- dpStoreArray: 0,
43
- dpGroupArray: 0,
44
- StartGroup_ANSI: 0xFFFFFFFF,
45
- StartGroup_Unicode: 0xFFFFFFFF,
46
- dwFlags: 0,
47
- dwHotKey: 0,
48
- dpBitmapOffset: 0,
49
- dwBitmapSize: 0
50
- };
51
- let size = KMXFile.COMP_KEYBOARD_SIZE;
52
- if (this.file instanceof KMXPlusFile) {
53
- // Reserve space for KMXPlus header; we'll come back and fill in details
54
- // once we know base kmx file size.
55
- this.comp_header.dwFlags |= KMXFile.KF_KMXPLUS;
56
- this.base_kmxplus = size;
57
- size += KMXFile.COMP_KEYBOARD_KMXPLUSINFO_SIZE;
58
- }
59
- // Stores
60
- this.comp_header.cxStoreArray = this.file.keyboard.stores.length;
61
- this.comp_header.dpStoreArray = this.comp_header.cxStoreArray ? size : 0;
62
- let storeBase = size;
63
- size += this.file.keyboard.stores.length * KMXFile.COMP_STORE_SIZE;
64
- for (let store of this.file.keyboard.stores) {
65
- let comp_store = {
66
- dwSystemID: store.dwSystemID,
67
- dpName: 0,
68
- dpString: 0
69
- };
70
- this.comp_stores.push({ base: storeBase, store: store, obj: comp_store });
71
- if (this.writeDebug /*TODO: || store.isOption*/) {
72
- [comp_store.dpName, size] = this.calculateStringOffsetAndSize(store.dpName, size);
73
- }
74
- [comp_store.dpString, size] = this.calculateStringOffsetAndSize(store.dpString, size);
75
- storeBase += KMXFile.COMP_STORE_SIZE;
76
- }
77
- // Groups
78
- this.comp_header.cxGroupArray = this.file.keyboard.groups.length;
79
- this.comp_header.dpGroupArray = this.comp_header.cxGroupArray ? size : 0;
80
- let groupBase = size;
81
- size += this.file.keyboard.groups.length * KMXFile.COMP_GROUP_SIZE;
82
- for (let group of this.file.keyboard.groups) {
83
- let comp_group = {
84
- dpName: 0,
85
- dpKeyArray: 0,
86
- dpMatch: 0,
87
- dpNoMatch: 0,
88
- cxKeyArray: group.keys.length,
89
- fUsingKeys: group.fUsingKeys ? 1 : 0
90
- };
91
- let comp_keys = [];
92
- this.comp_groups.push({ base: groupBase, group: group, obj: comp_group, keys: comp_keys });
93
- if (this.writeDebug) {
94
- [comp_group.dpName, size] = this.calculateStringOffsetAndSize(group.dpName, size);
95
- }
96
- [comp_group.dpMatch, size] = this.calculateStringOffsetAndSize(group.dpMatch, size);
97
- [comp_group.dpNoMatch, size] = this.calculateStringOffsetAndSize(group.dpNoMatch, size);
98
- // Keys within a group
99
- comp_group.dpKeyArray = group.keys.length ? size : 0;
100
- let keyBase = size;
101
- size += group.keys.length * KMXFile.COMP_KEY_SIZE;
102
- for (let key of group.keys) {
103
- let comp_key = {
104
- Key: key.Key,
105
- _padding: 0,
106
- Line: key.Line,
107
- ShiftFlags: key.ShiftFlags,
108
- dpOutput: 0,
109
- dpContext: 0
110
- };
111
- comp_keys.push({ base: keyBase, key: key, obj: comp_key });
112
- [comp_key.dpOutput, size] = this.calculateStringOffsetAndSize(key.dpOutput, size, true);
113
- [comp_key.dpContext, size] = this.calculateStringOffsetAndSize(key.dpContext, size, true);
114
- keyBase += KMXFile.COMP_KEY_SIZE;
115
- }
116
- groupBase += KMXFile.COMP_GROUP_SIZE;
117
- }
118
- size += this.buildBitmap();
119
- size += this.buildKMXPlus(size);
120
- return size;
121
- }
122
- buildBitmap() {
123
- // TODO
124
- return 0;
125
- }
126
- buildKMXPlus(base) {
127
- if (!(this.file instanceof KMXPlusFile)) {
128
- return 0;
129
- }
130
- const plusbuilder = new KMXPlusBuilder(this.file, this.writeDebug);
131
- this.comp_kmxplus_data = plusbuilder.compile();
132
- this.comp_kmxplus = {
133
- dpKMXPlus: base,
134
- dwKMXPlusSize: this.comp_kmxplus_data.length
135
- };
136
- return this.comp_kmxplus.dwKMXPlusSize;
137
- }
138
- setString(file, pos, str, requireString = false) {
139
- if (requireString && !str.length) {
140
- // Just write zero terminator, as r.String for a zero-length string
141
- // seems to fail.
142
- let sbuf = r.uint16le;
143
- file.set(sbuf.toBuffer(0), pos);
144
- }
145
- else if (pos && str.length) {
146
- let sbuf = new r.String(null, 'utf16le'); // null-terminated string
147
- file.set(sbuf.toBuffer(str), pos);
148
- }
149
- }
150
- compile() {
151
- const fileSize = this.build();
152
- let file = new Uint8Array(fileSize);
153
- // Write headers
154
- const header = this.file.COMP_KEYBOARD.toBuffer(this.comp_header);
155
- file.set(header, this.base_keyboard);
156
- if (this.file instanceof KMXPlusFile) {
157
- const kmxplus = this.file.COMP_KEYBOARD_KMXPLUSINFO.toBuffer(this.comp_kmxplus);
158
- file.set(kmxplus, this.base_kmxplus);
159
- }
160
- // Write store array and data
161
- for (let store of this.comp_stores) {
162
- file.set(this.file.COMP_STORE.toBuffer(store.obj), store.base);
163
- if (this.writeDebug) {
164
- this.setString(file, store.obj.dpName, store.store.dpName);
165
- }
166
- this.setString(file, store.obj.dpString, store.store.dpString);
167
- }
168
- // Write group array and data
169
- for (let group of this.comp_groups) {
170
- file.set(this.file.COMP_GROUP.toBuffer(group.obj), group.base);
171
- if (this.writeDebug) {
172
- this.setString(file, group.obj.dpName, group.group.dpName);
173
- }
174
- this.setString(file, group.obj.dpMatch, group.group.dpMatch);
175
- this.setString(file, group.obj.dpNoMatch, group.group.dpNoMatch);
176
- for (let key of group.keys) {
177
- file.set(this.file.COMP_KEY.toBuffer(key.obj), key.base);
178
- // for back-compat reasons, these are never NULL strings
179
- this.setString(file, key.obj.dpContext, key.key.dpContext, true);
180
- this.setString(file, key.obj.dpOutput, key.key.dpOutput, true);
181
- }
182
- }
183
- // Write KMXPlus data stream
184
- if (this.file instanceof KMXPlusFile) {
185
- file.set(this.comp_kmxplus_data, this.comp_kmxplus.dpKMXPlus);
186
- }
187
- return file;
188
- }
189
- }
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]="862c3ee8-5279-516a-9dc7-80048b1ba87c")}catch(e){}}();
3
+ import * as r from 'restructure';
4
+ import { KMXFile } from './kmx.js';
5
+ import { KMXPlusFile } from './kmx-plus.js';
6
+ import KMXPlusBuilder from './kmx-plus-builder/kmx-plus-builder.js';
7
+ export default class KMXBuilder {
8
+ file;
9
+ base_keyboard = 0;
10
+ base_kmxplus = 0;
11
+ comp_header;
12
+ comp_kmxplus;
13
+ comp_stores = [];
14
+ comp_groups = [];
15
+ comp_kmxplus_data;
16
+ writeDebug = false;
17
+ constructor(file, writeDebug) {
18
+ this.file = file;
19
+ this.writeDebug = writeDebug;
20
+ }
21
+ calculateStringOffsetAndSize(string, base, requireString = false) {
22
+ if (string.length == 0 && !requireString) {
23
+ // Zero length strings take up no space in the file, and
24
+ // are treated as a 'null string'
25
+ return [0, base];
26
+ }
27
+ return [base, base + string.length * 2 + 2]; // include trailing zero
28
+ }
29
+ build() {
30
+ this.base_keyboard = 0;
31
+ this.base_kmxplus = 0;
32
+ // Header
33
+ this.comp_header = {
34
+ dwIdentifier: KMXFile.FILEID_COMPILED,
35
+ dwFileVersion: KMXFile.VERSION_170,
36
+ dwCheckSum: 0, // Deprecated in Keyman 16.0
37
+ KeyboardID: 0,
38
+ IsRegistered: 1,
39
+ version: 0,
40
+ cxStoreArray: 0,
41
+ cxGroupArray: 0,
42
+ dpStoreArray: 0,
43
+ dpGroupArray: 0,
44
+ StartGroup_ANSI: 0xFFFFFFFF,
45
+ StartGroup_Unicode: 0xFFFFFFFF,
46
+ dwFlags: 0,
47
+ dwHotKey: 0,
48
+ dpBitmapOffset: 0,
49
+ dwBitmapSize: 0
50
+ };
51
+ let size = KMXFile.COMP_KEYBOARD_SIZE;
52
+ if (this.file instanceof KMXPlusFile) {
53
+ // Reserve space for KMXPlus header; we'll come back and fill in details
54
+ // once we know base kmx file size.
55
+ this.comp_header.dwFlags |= KMXFile.KF_KMXPLUS;
56
+ this.base_kmxplus = size;
57
+ size += KMXFile.COMP_KEYBOARD_KMXPLUSINFO_SIZE;
58
+ }
59
+ // Stores
60
+ this.comp_header.cxStoreArray = this.file.keyboard.stores.length;
61
+ this.comp_header.dpStoreArray = this.comp_header.cxStoreArray ? size : 0;
62
+ let storeBase = size;
63
+ size += this.file.keyboard.stores.length * KMXFile.COMP_STORE_SIZE;
64
+ for (let store of this.file.keyboard.stores) {
65
+ let comp_store = {
66
+ dwSystemID: store.dwSystemID,
67
+ dpName: 0,
68
+ dpString: 0
69
+ };
70
+ this.comp_stores.push({ base: storeBase, store: store, obj: comp_store });
71
+ if (this.writeDebug /*TODO: || store.isOption*/) {
72
+ [comp_store.dpName, size] = this.calculateStringOffsetAndSize(store.dpName, size);
73
+ }
74
+ [comp_store.dpString, size] = this.calculateStringOffsetAndSize(store.dpString, size);
75
+ storeBase += KMXFile.COMP_STORE_SIZE;
76
+ }
77
+ // Groups
78
+ this.comp_header.cxGroupArray = this.file.keyboard.groups.length;
79
+ this.comp_header.dpGroupArray = this.comp_header.cxGroupArray ? size : 0;
80
+ let groupBase = size;
81
+ size += this.file.keyboard.groups.length * KMXFile.COMP_GROUP_SIZE;
82
+ for (let group of this.file.keyboard.groups) {
83
+ let comp_group = {
84
+ dpName: 0,
85
+ dpKeyArray: 0,
86
+ dpMatch: 0,
87
+ dpNoMatch: 0,
88
+ cxKeyArray: group.keys.length,
89
+ fUsingKeys: group.fUsingKeys ? 1 : 0
90
+ };
91
+ let comp_keys = [];
92
+ this.comp_groups.push({ base: groupBase, group: group, obj: comp_group, keys: comp_keys });
93
+ if (this.writeDebug) {
94
+ [comp_group.dpName, size] = this.calculateStringOffsetAndSize(group.dpName, size);
95
+ }
96
+ [comp_group.dpMatch, size] = this.calculateStringOffsetAndSize(group.dpMatch, size);
97
+ [comp_group.dpNoMatch, size] = this.calculateStringOffsetAndSize(group.dpNoMatch, size);
98
+ // Keys within a group
99
+ comp_group.dpKeyArray = group.keys.length ? size : 0;
100
+ let keyBase = size;
101
+ size += group.keys.length * KMXFile.COMP_KEY_SIZE;
102
+ for (let key of group.keys) {
103
+ let comp_key = {
104
+ Key: key.Key,
105
+ _padding: 0,
106
+ Line: key.Line,
107
+ ShiftFlags: key.ShiftFlags,
108
+ dpOutput: 0,
109
+ dpContext: 0
110
+ };
111
+ comp_keys.push({ base: keyBase, key: key, obj: comp_key });
112
+ [comp_key.dpOutput, size] = this.calculateStringOffsetAndSize(key.dpOutput, size, true);
113
+ [comp_key.dpContext, size] = this.calculateStringOffsetAndSize(key.dpContext, size, true);
114
+ keyBase += KMXFile.COMP_KEY_SIZE;
115
+ }
116
+ groupBase += KMXFile.COMP_GROUP_SIZE;
117
+ }
118
+ size += this.buildBitmap();
119
+ size += this.buildKMXPlus(size);
120
+ return size;
121
+ }
122
+ buildBitmap() {
123
+ // TODO
124
+ return 0;
125
+ }
126
+ buildKMXPlus(base) {
127
+ if (!(this.file instanceof KMXPlusFile)) {
128
+ return 0;
129
+ }
130
+ const plusbuilder = new KMXPlusBuilder(this.file, this.writeDebug);
131
+ this.comp_kmxplus_data = plusbuilder.compile();
132
+ this.comp_kmxplus = {
133
+ dpKMXPlus: base,
134
+ dwKMXPlusSize: this.comp_kmxplus_data.length
135
+ };
136
+ return this.comp_kmxplus.dwKMXPlusSize;
137
+ }
138
+ setString(file, pos, str, requireString = false) {
139
+ if (requireString && !str.length) {
140
+ // Just write zero terminator, as r.String for a zero-length string
141
+ // seems to fail.
142
+ let sbuf = r.uint16le;
143
+ file.set(sbuf.toBuffer(0), pos);
144
+ }
145
+ else if (pos && str.length) {
146
+ let sbuf = new r.String(null, 'utf16le'); // null-terminated string
147
+ file.set(sbuf.toBuffer(str), pos);
148
+ }
149
+ }
150
+ compile() {
151
+ const fileSize = this.build();
152
+ let file = new Uint8Array(fileSize);
153
+ // Write headers
154
+ const header = this.file.COMP_KEYBOARD.toBuffer(this.comp_header);
155
+ file.set(header, this.base_keyboard);
156
+ if (this.file instanceof KMXPlusFile) {
157
+ const kmxplus = this.file.COMP_KEYBOARD_KMXPLUSINFO.toBuffer(this.comp_kmxplus);
158
+ file.set(kmxplus, this.base_kmxplus);
159
+ }
160
+ // Write store array and data
161
+ for (let store of this.comp_stores) {
162
+ file.set(this.file.COMP_STORE.toBuffer(store.obj), store.base);
163
+ if (this.writeDebug) {
164
+ this.setString(file, store.obj.dpName, store.store.dpName);
165
+ }
166
+ this.setString(file, store.obj.dpString, store.store.dpString);
167
+ }
168
+ // Write group array and data
169
+ for (let group of this.comp_groups) {
170
+ file.set(this.file.COMP_GROUP.toBuffer(group.obj), group.base);
171
+ if (this.writeDebug) {
172
+ this.setString(file, group.obj.dpName, group.group.dpName);
173
+ }
174
+ this.setString(file, group.obj.dpMatch, group.group.dpMatch);
175
+ this.setString(file, group.obj.dpNoMatch, group.group.dpNoMatch);
176
+ for (let key of group.keys) {
177
+ file.set(this.file.COMP_KEY.toBuffer(key.obj), key.base);
178
+ // for back-compat reasons, these are never NULL strings
179
+ this.setString(file, key.obj.dpContext, key.key.dpContext, true);
180
+ this.setString(file, key.obj.dpOutput, key.key.dpOutput, true);
181
+ }
182
+ }
183
+ // Write KMXPlus data stream
184
+ if (this.file instanceof KMXPlusFile) {
185
+ file.set(this.comp_kmxplus_data, this.comp_kmxplus.dpKMXPlus);
186
+ }
187
+ return file;
188
+ }
189
+ }
190
190
  //# sourceMappingURL=kmx-builder.js.map
191
- //# debugId=ce61d76e-ecd9-5633-8389-f26e6ec9bafb
191
+ //# debugId=862c3ee8-5279-516a-9dc7-80048b1ba87c
@@ -1 +1 @@
1
- {"version":3,"file":"kmx-builder.js","sources":["../../../src/kmx/kmx-builder.ts"],"sourceRoot":"","names":[],"mappings":"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","debug_id":"ce61d76e-ecd9-5633-8389-f26e6ec9bafb"}
1
+ {"version":3,"file":"kmx-builder.js","sources":["../../../src/kmx/kmx-builder.ts"],"sourceRoot":"","names":[],"mappings":"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","debug_id":"862c3ee8-5279-516a-9dc7-80048b1ba87c"}
@@ -1,14 +1,14 @@
1
- import { KEYBOARD } from "./kmx.js";
2
- import { KeymanTypesError } from "../util/errors.js";
3
- export declare class KmxFileReaderError extends KeymanTypesError {
4
- }
5
- export declare class KmxFileReader {
6
- private readonly rString;
7
- private readString;
8
- private isValidCodeUse;
9
- private processSystemStore;
10
- read(source: Uint8Array): KEYBOARD;
11
- private readGroupsAndRules;
12
- private readStores;
13
- }
1
+ import { KEYBOARD } from "./kmx.js";
2
+ import { KeymanTypesError } from "../util/errors.js";
3
+ export declare class KmxFileReaderError extends KeymanTypesError {
4
+ }
5
+ export declare class KmxFileReader {
6
+ private readonly rString;
7
+ private readString;
8
+ private isValidCodeUse;
9
+ private processSystemStore;
10
+ read(source: Uint8Array): KEYBOARD;
11
+ private readGroupsAndRules;
12
+ private readStores;
13
+ }
14
14
  //# sourceMappingURL=kmx-file-reader.d.ts.map