@keymanapp/developer-utils 18.0.41-alpha → 18.0.118-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 (238) hide show
  1. package/build/src/common-messages.d.ts +49 -0
  2. package/build/src/common-messages.d.ts.map +1 -0
  3. package/build/src/common-messages.js +35 -0
  4. package/build/src/common-messages.js.map +1 -0
  5. package/build/src/compiler-interfaces.d.ts +372 -0
  6. package/build/src/compiler-interfaces.d.ts.map +1 -0
  7. package/build/src/compiler-interfaces.js +382 -0
  8. package/build/src/compiler-interfaces.js.map +1 -0
  9. package/build/src/deps/xml2js/bom.d.ts +2 -0
  10. package/build/src/deps/xml2js/bom.d.ts.map +1 -0
  11. package/build/src/deps/xml2js/bom.js +14 -0
  12. package/build/src/deps/xml2js/bom.js.map +1 -0
  13. package/build/src/deps/xml2js/builder.d.ts +6 -0
  14. package/build/src/deps/xml2js/builder.d.ts.map +1 -0
  15. package/build/src/deps/xml2js/builder.js +133 -0
  16. package/build/src/deps/xml2js/builder.js.map +1 -0
  17. package/build/src/deps/xml2js/defaults.d.ts +69 -0
  18. package/build/src/deps/xml2js/defaults.d.ts.map +1 -0
  19. package/build/src/deps/xml2js/defaults.js +73 -0
  20. package/build/src/deps/xml2js/defaults.js.map +1 -0
  21. package/build/src/deps/xml2js/parser.d.ts +18 -0
  22. package/build/src/deps/xml2js/parser.d.ts.map +1 -0
  23. package/build/src/deps/xml2js/parser.js +395 -0
  24. package/build/src/deps/xml2js/parser.js.map +1 -0
  25. package/build/src/deps/xml2js/processors.d.ts +6 -0
  26. package/build/src/deps/xml2js/processors.d.ts.map +1 -0
  27. package/build/src/deps/xml2js/processors.js +28 -0
  28. package/build/src/deps/xml2js/processors.js.map +1 -0
  29. package/build/src/deps/xml2js/xml2js.d.ts +12 -0
  30. package/build/src/deps/xml2js/xml2js.d.ts.map +1 -0
  31. package/build/src/deps/xml2js/xml2js.js +26 -0
  32. package/build/src/deps/xml2js/xml2js.js.map +1 -0
  33. package/build/src/index.d.ts +24 -0
  34. package/build/src/index.d.ts.map +1 -0
  35. package/build/src/index.js +26 -0
  36. package/build/src/index.js.map +1 -0
  37. package/build/src/is-valid-email.d.ts +2 -0
  38. package/build/src/is-valid-email.d.ts.map +1 -0
  39. package/build/src/is-valid-email.js +20 -0
  40. package/build/src/is-valid-email.js.map +1 -0
  41. package/build/src/types/import/45/cldr_info.json +5 -0
  42. package/build/src/types/import/45/keys-Latn-implied.xml +80 -0
  43. package/build/src/types/import/45/keys-Zyyy-currency.xml +15 -0
  44. package/build/src/types/import/45/keys-Zyyy-punctuation.xml +45 -0
  45. package/build/src/types/import/45/scanCodes-implied.xml +53 -0
  46. package/build/src/types/keyman-touch-layout/keyman-touch-layout-file-reader.d.ts +7 -0
  47. package/build/src/types/keyman-touch-layout/keyman-touch-layout-file-reader.d.ts.map +1 -0
  48. package/build/src/types/keyman-touch-layout/keyman-touch-layout-file-reader.js +74 -0
  49. package/build/src/types/keyman-touch-layout/keyman-touch-layout-file-reader.js.map +1 -0
  50. package/build/src/types/keyman-touch-layout/keyman-touch-layout-file-writer.d.ts +30 -0
  51. package/build/src/types/keyman-touch-layout/keyman-touch-layout-file-writer.d.ts.map +1 -0
  52. package/build/src/types/keyman-touch-layout/keyman-touch-layout-file-writer.js +123 -0
  53. package/build/src/types/keyman-touch-layout/keyman-touch-layout-file-writer.js.map +1 -0
  54. package/build/src/types/kmx/kmx-builder.d.ts +42 -0
  55. package/build/src/types/kmx/kmx-builder.d.ts.map +1 -0
  56. package/build/src/types/kmx/kmx-builder.js +192 -0
  57. package/build/src/types/kmx/kmx-builder.js.map +1 -0
  58. package/build/src/types/kmx/kmx-plus-builder/build-disp.d.ts +20 -0
  59. package/build/src/types/kmx/kmx-plus-builder/build-disp.d.ts.map +1 -0
  60. package/build/src/types/kmx/kmx-plus-builder/build-disp.js +29 -0
  61. package/build/src/types/kmx/kmx-plus-builder/build-disp.js.map +1 -0
  62. package/build/src/types/kmx/kmx-plus-builder/build-elem.d.ts +29 -0
  63. package/build/src/types/kmx/kmx-plus-builder/build-elem.d.ts.map +1 -0
  64. package/build/src/types/kmx/kmx-plus-builder/build-elem.js +91 -0
  65. package/build/src/types/kmx/kmx-plus-builder/build-elem.js.map +1 -0
  66. package/build/src/types/kmx/kmx-plus-builder/build-keys.d.ts +59 -0
  67. package/build/src/types/kmx/kmx-plus-builder/build-keys.d.ts.map +1 -0
  68. package/build/src/types/kmx/kmx-plus-builder/build-keys.js +110 -0
  69. package/build/src/types/kmx/kmx-plus-builder/build-keys.js.map +1 -0
  70. package/build/src/types/kmx/kmx-plus-builder/build-layr.d.ts +57 -0
  71. package/build/src/types/kmx/kmx-plus-builder/build-layr.d.ts.map +1 -0
  72. package/build/src/types/kmx/kmx-plus-builder/build-layr.js +104 -0
  73. package/build/src/types/kmx/kmx-plus-builder/build-layr.js.map +1 -0
  74. package/build/src/types/kmx/kmx-plus-builder/build-list.d.ts +38 -0
  75. package/build/src/types/kmx/kmx-plus-builder/build-list.d.ts.map +1 -0
  76. package/build/src/types/kmx/kmx-plus-builder/build-list.js +69 -0
  77. package/build/src/types/kmx/kmx-plus-builder/build-list.js.map +1 -0
  78. package/build/src/types/kmx/kmx-plus-builder/build-loca.d.ts +13 -0
  79. package/build/src/types/kmx/kmx-plus-builder/build-loca.d.ts.map +1 -0
  80. package/build/src/types/kmx/kmx-plus-builder/build-loca.js +23 -0
  81. package/build/src/types/kmx/kmx-plus-builder/build-loca.js.map +1 -0
  82. package/build/src/types/kmx/kmx-plus-builder/build-meta.d.ts +18 -0
  83. package/build/src/types/kmx/kmx-plus-builder/build-meta.d.ts.map +1 -0
  84. package/build/src/types/kmx/kmx-plus-builder/build-meta.js +24 -0
  85. package/build/src/types/kmx/kmx-plus-builder/build-meta.js.map +1 -0
  86. package/build/src/types/kmx/kmx-plus-builder/build-sect.d.ts +16 -0
  87. package/build/src/types/kmx/kmx-plus-builder/build-sect.d.ts.map +1 -0
  88. package/build/src/types/kmx/kmx-plus-builder/build-sect.js +17 -0
  89. package/build/src/types/kmx/kmx-plus-builder/build-sect.js.map +1 -0
  90. package/build/src/types/kmx/kmx-plus-builder/build-strs.d.ts +25 -0
  91. package/build/src/types/kmx/kmx-plus-builder/build-strs.d.ts.map +1 -0
  92. package/build/src/types/kmx/kmx-plus-builder/build-strs.js +49 -0
  93. package/build/src/types/kmx/kmx-plus-builder/build-strs.js.map +1 -0
  94. package/build/src/types/kmx/kmx-plus-builder/build-tran.d.ts +35 -0
  95. package/build/src/types/kmx/kmx-plus-builder/build-tran.d.ts.map +1 -0
  96. package/build/src/types/kmx/kmx-plus-builder/build-tran.js +71 -0
  97. package/build/src/types/kmx/kmx-plus-builder/build-tran.js.map +1 -0
  98. package/build/src/types/kmx/kmx-plus-builder/build-uset.d.ts +34 -0
  99. package/build/src/types/kmx/kmx-plus-builder/build-uset.d.ts.map +1 -0
  100. package/build/src/types/kmx/kmx-plus-builder/build-uset.js +63 -0
  101. package/build/src/types/kmx/kmx-plus-builder/build-uset.js.map +1 -0
  102. package/build/src/types/kmx/kmx-plus-builder/build-vars.d.ts +23 -0
  103. package/build/src/types/kmx/kmx-plus-builder/build-vars.d.ts.map +1 -0
  104. package/build/src/types/kmx/kmx-plus-builder/build-vars.js +50 -0
  105. package/build/src/types/kmx/kmx-plus-builder/build-vars.js.map +1 -0
  106. package/build/src/types/kmx/kmx-plus-builder/builder-section.d.ts +10 -0
  107. package/build/src/types/kmx/kmx-plus-builder/builder-section.d.ts.map +1 -0
  108. package/build/src/types/kmx/kmx-plus-builder/builder-section.js +6 -0
  109. package/build/src/types/kmx/kmx-plus-builder/builder-section.js.map +1 -0
  110. package/build/src/types/kmx/kmx-plus-builder/kmx-plus-builder.d.ts +44 -0
  111. package/build/src/types/kmx/kmx-plus-builder/kmx-plus-builder.d.ts.map +1 -0
  112. package/build/src/types/kmx/kmx-plus-builder/kmx-plus-builder.js +139 -0
  113. package/build/src/types/kmx/kmx-plus-builder/kmx-plus-builder.js.map +1 -0
  114. package/build/src/types/kpj/keyman-developer-project.d.ts +79 -0
  115. package/build/src/types/kpj/keyman-developer-project.d.ts.map +1 -0
  116. package/build/src/types/kpj/keyman-developer-project.js +197 -0
  117. package/build/src/types/kpj/keyman-developer-project.js.map +1 -0
  118. package/build/src/types/kpj/kpj-file-reader.d.ts +19 -0
  119. package/build/src/types/kpj/kpj-file-reader.d.ts.map +1 -0
  120. package/build/src/types/kpj/kpj-file-reader.js +121 -0
  121. package/build/src/types/kpj/kpj-file-reader.js.map +1 -0
  122. package/build/src/types/kpj/kpj-file.d.ts +40 -0
  123. package/build/src/types/kpj/kpj-file.d.ts.map +1 -0
  124. package/build/src/types/kpj/kpj-file.js +14 -0
  125. package/build/src/types/kpj/kpj-file.js.map +1 -0
  126. package/build/src/types/kps/kps-file.d.ts +176 -0
  127. package/build/src/types/kps/kps-file.d.ts.map +1 -0
  128. package/build/src/types/kps/kps-file.js +19 -0
  129. package/build/src/types/kps/kps-file.js.map +1 -0
  130. package/build/src/types/kvks/kvks-file-reader.d.ts +26 -0
  131. package/build/src/types/kvks/kvks-file-reader.d.ts.map +1 -0
  132. package/build/src/types/kvks/kvks-file-reader.js +181 -0
  133. package/build/src/types/kvks/kvks-file-reader.js.map +1 -0
  134. package/build/src/types/kvks/kvks-file-writer.d.ts +9 -0
  135. package/build/src/types/kvks/kvks-file-writer.d.ts.map +1 -0
  136. package/build/src/types/kvks/kvks-file-writer.js +109 -0
  137. package/build/src/types/kvks/kvks-file-writer.js.map +1 -0
  138. package/build/src/types/kvks/kvks-file.d.ts +44 -0
  139. package/build/src/types/kvks/kvks-file.d.ts.map +1 -0
  140. package/build/src/types/kvks/kvks-file.js +13 -0
  141. package/build/src/types/kvks/kvks-file.js.map +1 -0
  142. package/build/src/types/ldml-keyboard/ldml-keyboard-testdata-xml.d.ts +61 -0
  143. package/build/src/types/ldml-keyboard/ldml-keyboard-testdata-xml.d.ts.map +1 -0
  144. package/build/src/types/ldml-keyboard/ldml-keyboard-testdata-xml.js +23 -0
  145. package/build/src/types/ldml-keyboard/ldml-keyboard-testdata-xml.js.map +1 -0
  146. package/build/src/types/ldml-keyboard/ldml-keyboard-xml-reader.d.ts +96 -0
  147. package/build/src/types/ldml-keyboard/ldml-keyboard-xml-reader.d.ts.map +1 -0
  148. package/build/src/types/ldml-keyboard/ldml-keyboard-xml-reader.js +430 -0
  149. package/build/src/types/ldml-keyboard/ldml-keyboard-xml-reader.js.map +1 -0
  150. package/build/src/types/ldml-keyboard/ldml-keyboard-xml.d.ts +171 -0
  151. package/build/src/types/ldml-keyboard/ldml-keyboard-xml.d.ts.map +1 -0
  152. package/build/src/types/ldml-keyboard/ldml-keyboard-xml.js +59 -0
  153. package/build/src/types/ldml-keyboard/ldml-keyboard-xml.js.map +1 -0
  154. package/build/src/{KeymanSentry.d.ts → utils/KeymanSentry.d.ts} +11 -11
  155. package/build/src/utils/KeymanSentry.d.ts.map +1 -0
  156. package/build/src/{KeymanSentry.js → utils/KeymanSentry.js} +75 -75
  157. package/build/src/utils/KeymanSentry.js.map +1 -0
  158. package/build/src/{keyman-urls.d.ts → utils/keyman-urls.d.ts} +14 -14
  159. package/build/src/utils/keyman-urls.d.ts.map +1 -0
  160. package/build/src/{keyman-urls.js → utils/keyman-urls.js} +20 -20
  161. package/build/src/utils/keyman-urls.js.map +1 -0
  162. package/build/src/{markdown.d.ts → utils/markdown.d.ts} +1 -1
  163. package/build/src/utils/markdown.d.ts.map +1 -0
  164. package/build/src/{markdown.js → utils/markdown.js} +22 -22
  165. package/build/src/utils/markdown.js.map +1 -0
  166. package/build/src/{options.d.ts → utils/options.d.ts} +43 -43
  167. package/build/src/utils/options.d.ts.map +1 -0
  168. package/build/src/{options.js → utils/options.js} +57 -57
  169. package/build/src/utils/options.js.map +1 -0
  170. package/build/src/{validate-mit-license.d.ts → utils/validate-mit-license.d.ts} +6 -6
  171. package/build/src/utils/validate-mit-license.d.ts.map +1 -0
  172. package/build/src/{validate-mit-license.js → utils/validate-mit-license.js} +50 -50
  173. package/build/src/utils/validate-mit-license.js.map +1 -0
  174. package/build/test/helpers/index.d.ts +13 -0
  175. package/build/test/helpers/index.d.ts.map +1 -0
  176. package/build/test/helpers/index.js +42 -0
  177. package/build/test/helpers/index.js.map +1 -0
  178. package/build/test/helpers/reader-callback-test.d.ts +73 -0
  179. package/build/test/helpers/reader-callback-test.d.ts.map +1 -0
  180. package/build/test/helpers/reader-callback-test.js +108 -0
  181. package/build/test/helpers/reader-callback-test.js.map +1 -0
  182. package/build/test/keyman-touch-layout/test-keyman-touch-layout-file-reader.d.ts +2 -0
  183. package/build/test/keyman-touch-layout/test-keyman-touch-layout-file-reader.d.ts.map +1 -0
  184. package/build/test/keyman-touch-layout/test-keyman-touch-layout-file-reader.js +64 -0
  185. package/build/test/keyman-touch-layout/test-keyman-touch-layout-file-reader.js.map +1 -0
  186. package/build/test/keyman-touch-layout/test-keyman-touch-layout-round-trip.d.ts +2 -0
  187. package/build/test/keyman-touch-layout/test-keyman-touch-layout-round-trip.d.ts.map +1 -0
  188. package/build/test/keyman-touch-layout/test-keyman-touch-layout-round-trip.js +34 -0
  189. package/build/test/keyman-touch-layout/test-keyman-touch-layout-round-trip.js.map +1 -0
  190. package/build/test/kmx/test-ldml-keyboard-testdata-reader.d.ts +2 -0
  191. package/build/test/kmx/test-ldml-keyboard-testdata-reader.d.ts.map +1 -0
  192. package/build/test/kmx/test-ldml-keyboard-testdata-reader.js +54 -0
  193. package/build/test/kmx/test-ldml-keyboard-testdata-reader.js.map +1 -0
  194. package/build/test/kmx/test-ldml-keyboard-xml-reader.d.ts +2 -0
  195. package/build/test/kmx/test-ldml-keyboard-xml-reader.d.ts.map +1 -0
  196. package/build/test/kmx/test-ldml-keyboard-xml-reader.js +209 -0
  197. package/build/test/kmx/test-ldml-keyboard-xml-reader.js.map +1 -0
  198. package/build/test/kpj/test-kpj-file-reader.d.ts +2 -0
  199. package/build/test/kpj/test-kpj-file-reader.d.ts.map +1 -0
  200. package/build/test/kpj/test-kpj-file-reader.js +141 -0
  201. package/build/test/kpj/test-kpj-file-reader.js.map +1 -0
  202. package/build/test/kvks/test-kvk-round-trip.d.ts +2 -0
  203. package/build/test/kvks/test-kvk-round-trip.d.ts.map +1 -0
  204. package/build/test/kvks/test-kvk-round-trip.js +108 -0
  205. package/build/test/kvks/test-kvk-round-trip.js.map +1 -0
  206. package/build/test/kvks/test-kvk-utils.d.ts +6 -0
  207. package/build/test/kvks/test-kvk-utils.d.ts.map +1 -0
  208. package/build/test/kvks/test-kvk-utils.js +42 -0
  209. package/build/test/kvks/test-kvk-utils.js.map +1 -0
  210. package/build/test/kvks/test-kvks-file.d.ts +2 -0
  211. package/build/test/kvks/test-kvks-file.d.ts.map +1 -0
  212. package/build/test/kvks/test-kvks-file.js +59 -0
  213. package/build/test/kvks/test-kvks-file.js.map +1 -0
  214. package/build/test/test-is-valid-email.d.ts +2 -0
  215. package/build/test/test-is-valid-email.d.ts.map +1 -0
  216. package/build/test/test-is-valid-email.js +36 -0
  217. package/build/test/test-is-valid-email.js.map +1 -0
  218. package/build/test/test-license.d.ts +2 -0
  219. package/build/test/test-license.d.ts.map +1 -0
  220. package/build/test/test-license.js +24 -0
  221. package/build/test/test-license.js.map +1 -0
  222. package/build/test/tsconfig.tsbuildinfo +1 -0
  223. package/build/tsconfig.tsbuildinfo +1 -1
  224. package/package.json +15 -6
  225. package/build/index.d.ts +0 -6
  226. package/build/index.d.ts.map +0 -1
  227. package/build/index.js +0 -9
  228. package/build/index.js.map +0 -1
  229. package/build/src/KeymanSentry.d.ts.map +0 -1
  230. package/build/src/KeymanSentry.js.map +0 -1
  231. package/build/src/keyman-urls.d.ts.map +0 -1
  232. package/build/src/keyman-urls.js.map +0 -1
  233. package/build/src/markdown.d.ts.map +0 -1
  234. package/build/src/markdown.js.map +0 -1
  235. package/build/src/options.d.ts.map +0 -1
  236. package/build/src/options.js.map +0 -1
  237. package/build/src/validate-mit-license.d.ts.map +0 -1
  238. package/build/src/validate-mit-license.js.map +0 -1
@@ -0,0 +1,209 @@
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]="8e0f0a64-43a7-5f18-8ffa-68c9986ca1cf")}catch(e){}}();
3
+ import { ImportStatus } from '../../src/types/ldml-keyboard/ldml-keyboard-xml.js';
4
+ import 'mocha';
5
+ import { assert } from 'chai';
6
+ import { CommonTypesMessages } from '../../src/common-messages.js';
7
+ import { testReaderCases } from '../helpers/reader-callback-test.js';
8
+ import { Constants } from '@keymanapp/common-types';
9
+ var CLDRScanToVkey = Constants.CLDRScanToVkey;
10
+ var CLDRScanToKeyMap = Constants.CLDRScanToKeyMap;
11
+ var USVirtualKeyCodes = Constants.USVirtualKeyCodes;
12
+ function pluckKeysFromKeybag(keys, ids) {
13
+ return keys.filter(({ id }) => ids.indexOf(id) !== -1);
14
+ }
15
+ describe('ldml keyboard xml reader tests', function () {
16
+ this.slow(500); // 0.5 sec -- json schema validation takes a while
17
+ testReaderCases([
18
+ {
19
+ subpath: 'invalid-structure-per-dtd.xml',
20
+ errors: [CommonTypesMessages.Error_SchemaValidationError({
21
+ instancePath: '/keyboard3',
22
+ keyword: 'required',
23
+ message: `must have required property 'info'`,
24
+ params: 'missingProperty="info"',
25
+ })],
26
+ },
27
+ {
28
+ subpath: 'invalid-conforms-to.xml',
29
+ errors: [CommonTypesMessages.Error_SchemaValidationError({
30
+ instancePath: '/keyboard3/conformsTo',
31
+ keyword: 'enum',
32
+ message: `must be equal to one of the allowed values`,
33
+ params: 'allowedValues="45"',
34
+ })],
35
+ },
36
+ {
37
+ subpath: 'import-minimal.xml',
38
+ callback: (data, source, subpath, callbacks) => {
39
+ assert.ok(source?.keyboard3?.keys);
40
+ const k = pluckKeysFromKeybag(source?.keyboard3?.keys.key, ['a', 'b', 'c']);
41
+ assert.sameDeepOrderedMembers(k.map((entry) => {
42
+ // Drop the Symbol members from the returned keys; assertions may expect their presence.
43
+ return {
44
+ id: entry.id,
45
+ output: entry.output
46
+ };
47
+ }), [
48
+ { id: 'a', output: 'a' },
49
+ { id: 'b', output: 'b' },
50
+ { id: 'c', output: 'c' },
51
+ ]);
52
+ // all of the keys are implied imports here
53
+ assert.isTrue(ImportStatus.isImpliedImport(source?.keyboard3?.keys.key.find(({ id }) => id === 'a')));
54
+ assert.isTrue(ImportStatus.isImport(source?.keyboard3?.keys.key.find(({ id }) => id === 'a')));
55
+ },
56
+ },
57
+ {
58
+ subpath: 'import-minimal1.xml',
59
+ callback: (data, source, subpath, callbacks) => {
60
+ assert.ok(source?.keyboard3?.keys);
61
+ const k = pluckKeysFromKeybag(source?.keyboard3?.keys.key, ['a', 'b', 'c']);
62
+ assert.sameDeepOrderedMembers(k.map((entry) => {
63
+ // Drop the Symbol members from the returned keys; assertions may expect their presence.
64
+ return {
65
+ id: entry.id,
66
+ output: entry.output
67
+ };
68
+ }), [
69
+ { id: 'a', output: 'a' },
70
+ { id: 'b', output: 'b' },
71
+ { id: 'c', output: 'c' },
72
+ ]);
73
+ },
74
+ },
75
+ {
76
+ subpath: 'import-minimal2.xml',
77
+ callback: (data, source, subpath, callbacks) => {
78
+ assert.ok(source?.keyboard3?.keys);
79
+ const k = pluckKeysFromKeybag(source?.keyboard3?.keys.key, ['a', 'b', 'c']);
80
+ assert.sameDeepOrderedMembers(k.map((entry) => {
81
+ // Drop the Symbol members from the returned keys; assertions may expect their presence.
82
+ return {
83
+ id: entry.id,
84
+ output: entry.output
85
+ };
86
+ }), [
87
+ { id: 'a', output: 'a' },
88
+ { id: 'b', output: 'b' },
89
+ { id: 'c', output: 'c' },
90
+ { id: 'a', output: 'å' }, // overridden
91
+ ]);
92
+ },
93
+ },
94
+ {
95
+ subpath: 'import-symbols.xml',
96
+ callback: (data, source, subpath, callbacks) => {
97
+ assert.ok(source?.keyboard3?.keys);
98
+ const k = pluckKeysFromKeybag(source?.keyboard3?.keys.key, ['a', 'b', 'c', 'zz', 'hash', 'hyphen']);
99
+ assert.sameDeepOrderedMembers(k.map((entry) => {
100
+ // Drop the Symbol members from the returned keys; assertions may expect their presence.
101
+ return {
102
+ id: entry.id,
103
+ output: entry.output
104
+ };
105
+ }), [
106
+ { id: 'a', output: 'a' }, // implied
107
+ { id: 'b', output: 'b' },
108
+ { id: 'c', output: 'c' },
109
+ { id: 'hash', output: '#' }, // imported symbols
110
+ { id: 'hyphen', output: '-' },
111
+ { id: 'zz', output: 'zz' }, // new key
112
+ { id: 'hash', output: '##' }, // override
113
+ ]);
114
+ // 'a' is an implied import
115
+ assert.isTrue(ImportStatus.isImpliedImport(k.find(({ id }) => id === 'a')));
116
+ assert.isTrue(ImportStatus.isImport(k.find(({ id }) => id === 'a')));
117
+ // 'hash' is an import but not implied
118
+ assert.isFalse(ImportStatus.isImpliedImport(k.find(({ id }) => id === 'hash')));
119
+ assert.isTrue(ImportStatus.isImport(k.find(({ id }) => id === 'hash')));
120
+ // 'zz' is not imported
121
+ assert.isFalse(ImportStatus.isImpliedImport(k.find(({ id }) => id === 'zz')));
122
+ assert.isFalse(ImportStatus.isImport(k.find(({ id }) => id === 'zz')));
123
+ },
124
+ },
125
+ {
126
+ subpath: 'invalid-import-base.xml',
127
+ loadfail: true,
128
+ errors: [
129
+ CommonTypesMessages.Error_ImportInvalidBase({
130
+ base: 'SOME_INVALID_BASE',
131
+ path: 'B',
132
+ subtag: 'C'
133
+ }),
134
+ ],
135
+ },
136
+ {
137
+ subpath: 'invalid-import-path.xml',
138
+ loadfail: true,
139
+ errors: [
140
+ CommonTypesMessages.Error_ImportInvalidPath({
141
+ base: null,
142
+ path: '45/too/many/slashes/leading/to/nothing-Zxxx-does-not-exist.xml',
143
+ subtag: null,
144
+ }),
145
+ ],
146
+ },
147
+ {
148
+ subpath: 'invalid-import-readfail.xml',
149
+ loadfail: true,
150
+ errors: [
151
+ CommonTypesMessages.Error_ImportReadFail({
152
+ base: null,
153
+ path: '45/none-Zxxx-does-not-exist.xml',
154
+ subtag: null,
155
+ }),
156
+ ],
157
+ },
158
+ {
159
+ subpath: 'invalid-import-wrongroot.xml',
160
+ loadfail: true,
161
+ errors: [
162
+ CommonTypesMessages.Error_ImportWrongRoot({
163
+ base: null,
164
+ path: '45/keys-Zyyy-punctuation.xml',
165
+ subtag: 'flicks',
166
+ }),
167
+ ],
168
+ },
169
+ ]);
170
+ });
171
+ describe('check scan code routines', () => {
172
+ it('should be able to detect bad single scancodes', () => {
173
+ const badScans = new Set();
174
+ const ckey = CLDRScanToVkey(0xFF, badScans);
175
+ assert.isUndefined(ckey, `expected undefined 0xFF`);
176
+ assert.equal(badScans.size, 1);
177
+ assert.sameDeepMembers(Array.from(badScans.values()), [0xFF]);
178
+ });
179
+ it('should be able to detect bad list scancodes', () => {
180
+ const badScans = new Set();
181
+ const ckeys = CLDRScanToKeyMap([[0x02, 0xFF]], badScans);
182
+ assert.sameDeepMembers(ckeys, [[49, undefined]]);
183
+ assert.equal(badScans.size, 1);
184
+ assert.sameDeepMembers(Array.from(badScans.values()), [0xFF]);
185
+ });
186
+ it('CLDRScanToUSVirtualKeyCodes should be 1:1', () => {
187
+ const vkeyToScan = new Map();
188
+ // check all scancodes
189
+ for (let scan = 0; scan <= 0xFF; scan++) {
190
+ const vkey = CLDRScanToVkey(scan);
191
+ if (vkey === undefined) {
192
+ // not mapped, which is OK
193
+ continue;
194
+ }
195
+ if (scan === 0x56 || scan === 0x7D) {
196
+ // These both can map to this scancode
197
+ assert.equal(vkey, USVirtualKeyCodes.K_oE2);
198
+ }
199
+ else {
200
+ // don't check those exceptions
201
+ assert.isFalse(vkeyToScan.has(vkey), `vkey ${vkey} mapped from more than one scancode: ${Number(vkeyToScan.get(vkey)).toString(16)} and ${Number(scan).toString(16)}`);
202
+ }
203
+ // do make sure nothing else maps to that vkey
204
+ vkeyToScan.set(vkey, scan);
205
+ }
206
+ });
207
+ });
208
+ //# sourceMappingURL=test-ldml-keyboard-xml-reader.js.map
209
+ //# debugId=8e0f0a64-43a7-5f18-8ffa-68c9986ca1cf
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-ldml-keyboard-xml-reader.js","sources":["../../../test/kmx/test-ldml-keyboard-xml-reader.ts"],"sourceRoot":"","names":[],"mappings":"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","debug_id":"8e0f0a64-43a7-5f18-8ffa-68c9986ca1cf"}
@@ -0,0 +1,2 @@
1
+ import 'mocha';
2
+ //# sourceMappingURL=test-kpj-file-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-kpj-file-reader.d.ts","sourceRoot":"","sources":["../../../test/kpj/test-kpj-file-reader.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,CAAC"}
@@ -0,0 +1,141 @@
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]="7e93fc02-2331-566a-b7e7-34bb1d9da949")}catch(e){}}();
3
+ import * as fs from 'fs';
4
+ import 'mocha';
5
+ import { assert } from 'chai';
6
+ import { makePathToFixture } from '../helpers/index.js';
7
+ import { KPJFileReader } from "../../src/types/kpj/kpj-file-reader.js";
8
+ import { KeymanDeveloperProjectType } from '../../src/types/kpj/keyman-developer-project.js';
9
+ import { TestCompilerCallbacks } from '@keymanapp/developer-test-helpers';
10
+ const callbacks = new TestCompilerCallbacks();
11
+ describe('kpj-file-reader', function () {
12
+ it('kpj-file-reader should read a valid file', function () {
13
+ const kpjPath = 'khmer_angkor.kpj';
14
+ const path = makePathToFixture('kpj', kpjPath);
15
+ const input = fs.readFileSync(path);
16
+ const reader = new KPJFileReader(callbacks);
17
+ const kpj = reader.read(input);
18
+ assert.doesNotThrow(() => {
19
+ reader.validate(kpj);
20
+ });
21
+ assert.equal(kpj.KeymanDeveloperProject.Options.BuildPath, '$PROJECTPATH\\build');
22
+ assert.equal(kpj.KeymanDeveloperProject.Options.CheckFilenameConventions, 'False');
23
+ assert.equal(kpj.KeymanDeveloperProject.Options.CompilerWarningsAsErrors, 'True');
24
+ assert.equal(kpj.KeymanDeveloperProject.Options.ProjectType, 'keyboard');
25
+ assert.equal(kpj.KeymanDeveloperProject.Options.WarnDeprecatedCode, 'True');
26
+ assert.isUndefined(kpj.KeymanDeveloperProject.Options.SkipMetadataFiles); // because this is a 1.0 version file
27
+ assert.isUndefined(kpj.KeymanDeveloperProject.Options.Version);
28
+ assert.lengthOf(kpj.KeymanDeveloperProject.Files.File, 21);
29
+ // Test a representative set of files - kmn, kps, 2 child files
30
+ let kf = kpj.KeymanDeveloperProject.Files.File[0];
31
+ assert.equal(kf.ID, 'id_f347675c33d2e6b1c705c787fad4941a');
32
+ assert.equal(kf.Filename, 'khmer_angkor.kmn');
33
+ assert.equal(kf.Filepath, 'source\\khmer_angkor.kmn');
34
+ assert.equal(kf.FileVersion, '1.3');
35
+ assert.equal(kf.FileType, '.kmn');
36
+ assert.equal(kf.Details.Name, 'Khmer Angkor');
37
+ assert.equal(kf.Details.Copyright, '© 2015-2022 SIL International');
38
+ assert.equal(kf.Details.Message, 'More than just a Khmer Unicode keyboard.');
39
+ kf = kpj.KeymanDeveloperProject.Files.File[1];
40
+ assert.equal(kf.ID, 'id_8d4eb765f80c9f2b0f769cf4e4aaa456');
41
+ assert.equal(kf.Filename, 'khmer_angkor.kps');
42
+ assert.equal(kf.Filepath, 'source\\khmer_angkor.kps');
43
+ assert.isEmpty(kf.FileVersion);
44
+ assert.equal(kf.FileType, '.kps');
45
+ assert.equal(kf.Details.Name, 'Khmer Angkor');
46
+ assert.equal(kf.Details.Copyright, '© 2015-2022 SIL International');
47
+ kf = kpj.KeymanDeveloperProject.Files.File[2];
48
+ assert.equal(kf.ID, 'id_8a1efc7c4ab7cfece8aedd847679ca27');
49
+ assert.equal(kf.Filename, 'khmer_angkor.ico');
50
+ assert.equal(kf.Filepath, 'source\\khmer_angkor.ico');
51
+ assert.isEmpty(kf.FileVersion);
52
+ assert.equal(kf.FileType, '.ico');
53
+ assert.equal(kf.ParentFileID, 'id_f347675c33d2e6b1c705c787fad4941a');
54
+ kf = kpj.KeymanDeveloperProject.Files.File[3];
55
+ assert.equal(kf.ID, 'id_8dc195db32d1fd0514de0ad51fff5df0');
56
+ assert.equal(kf.Filename, 'khmer_angkor.js');
57
+ assert.equal(kf.Filepath, 'source\\..\\build\\khmer_angkor.js');
58
+ assert.isEmpty(kf.FileVersion);
59
+ assert.equal(kf.FileType, '.js');
60
+ assert.equal(kf.ParentFileID, 'id_8d4eb765f80c9f2b0f769cf4e4aaa456');
61
+ // Test transform of .kpj into a KeymanDeveloperProject
62
+ const project = reader.transform(kpjPath, kpj);
63
+ assert.equal(project.options.buildPath, '$PROJECTPATH/build');
64
+ assert.isFalse(project.options.checkFilenameConventions);
65
+ assert.isTrue(project.options.compilerWarningsAsErrors);
66
+ assert.equal(project.options.projectType, KeymanDeveloperProjectType.Keyboard);
67
+ assert.isTrue(project.options.warnDeprecatedCode);
68
+ assert.isTrue(project.options.skipMetadataFiles);
69
+ assert.equal(project.options.version, '1.0');
70
+ assert.lengthOf(project.files, 2);
71
+ let f = project.files[0];
72
+ assert.equal(f.id, 'id_f347675c33d2e6b1c705c787fad4941a');
73
+ assert.equal(f.filename, 'khmer_angkor.kmn');
74
+ assert.equal(f.filePath, 'source/khmer_angkor.kmn');
75
+ assert.equal(f.fileVersion, '1.3');
76
+ assert.equal(f.fileType, '.kmn');
77
+ assert.equal(f.details.name, 'Khmer Angkor');
78
+ assert.equal(f.details.copyright, '© 2015-2022 SIL International');
79
+ assert.equal(f.details.message, 'More than just a Khmer Unicode keyboard.');
80
+ assert.isUndefined(f.details.version);
81
+ assert.lengthOf(f.childFiles, 1);
82
+ f = project.files[1];
83
+ assert.equal(f.id, 'id_8d4eb765f80c9f2b0f769cf4e4aaa456');
84
+ assert.equal(f.filename, 'khmer_angkor.kps');
85
+ assert.equal(f.filePath, 'source/khmer_angkor.kps');
86
+ assert.equal(f.fileVersion, '');
87
+ assert.equal(f.fileType, '.kps');
88
+ assert.equal(f.details.name, 'Khmer Angkor');
89
+ assert.isUndefined(f.details.message);
90
+ assert.equal(f.details.copyright, '© 2015-2022 SIL International');
91
+ assert.isUndefined(f.details.version);
92
+ assert.lengthOf(f.childFiles, 18);
93
+ f = project.files[0];
94
+ f = f.childFiles[0];
95
+ assert.equal(f.id, 'id_8a1efc7c4ab7cfece8aedd847679ca27');
96
+ assert.equal(f.filename, 'khmer_angkor.ico');
97
+ assert.equal(f.filePath, 'source/khmer_angkor.ico');
98
+ assert.equal(f.fileVersion, '');
99
+ assert.equal(f.fileType, '.ico');
100
+ assert.isEmpty(f.details);
101
+ assert.lengthOf(f.childFiles, 0);
102
+ f = project.files[1];
103
+ f = f.childFiles[0];
104
+ assert.equal(f.id, 'id_8dc195db32d1fd0514de0ad51fff5df0');
105
+ assert.equal(f.filename, 'khmer_angkor.js');
106
+ assert.equal(f.filePath, 'source/../build/khmer_angkor.js');
107
+ assert.equal(f.fileVersion, '');
108
+ assert.equal(f.fileType, '.js');
109
+ assert.isEmpty(f.details);
110
+ assert.lengthOf(f.childFiles, 0);
111
+ });
112
+ it('should load a v1.0 keyboard project with missing <File>', function () {
113
+ const path = makePathToFixture('kpj', 'project-missing-file', 'project_missing_file.kpj');
114
+ const input = fs.readFileSync(path);
115
+ const reader = new KPJFileReader(callbacks);
116
+ const kpj = reader.read(input);
117
+ reader.validate(kpj);
118
+ if (callbacks.messages.length) {
119
+ callbacks.printMessages();
120
+ }
121
+ assert.equal(callbacks.messages.length, 0);
122
+ assert.lengthOf(kpj.KeymanDeveloperProject.Files.File, 0);
123
+ const project = reader.transform(path, kpj);
124
+ assert.equal(callbacks.messages.length, 0);
125
+ assert.isNotNull(project);
126
+ });
127
+ it('should load a v1.0 keyboard project with missing <Files>', function () {
128
+ const path = makePathToFixture('kpj', 'project-missing-file', 'project_missing_files.kpj');
129
+ const input = fs.readFileSync(path);
130
+ const reader = new KPJFileReader(callbacks);
131
+ const kpj = reader.read(input);
132
+ reader.validate(kpj);
133
+ assert.equal(callbacks.messages.length, 0);
134
+ assert.lengthOf(kpj.KeymanDeveloperProject.Files.File, 0);
135
+ const project = reader.transform(path, kpj);
136
+ assert.equal(callbacks.messages.length, 0);
137
+ assert.isNotNull(project);
138
+ });
139
+ });
140
+ //# sourceMappingURL=test-kpj-file-reader.js.map
141
+ //# debugId=7e93fc02-2331-566a-b7e7-34bb1d9da949
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-kpj-file-reader.js","sources":["../../../test/kpj/test-kpj-file-reader.ts"],"sourceRoot":"","names":[],"mappings":"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","debug_id":"7e93fc02-2331-566a-b7e7-34bb1d9da949"}
@@ -0,0 +1,2 @@
1
+ import 'mocha';
2
+ //# sourceMappingURL=test-kvk-round-trip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-kvk-round-trip.d.ts","sourceRoot":"","sources":["../../../test/kvks/test-kvk-round-trip.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,CAAC"}
@@ -0,0 +1,108 @@
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]="8a47882d-8280-5174-a0ef-2b8359d7b15e")}catch(e){}}();
3
+ import * as fs from 'fs';
4
+ import 'mocha';
5
+ import { assert } from 'chai';
6
+ import Hexy from 'hexy';
7
+ import gitDiff from 'git-diff';
8
+ const { hexy } = Hexy;
9
+ import { makePathToFixture } from '../helpers/index.js';
10
+ import KvksFileReader from "../../src/types/kvks/kvks-file-reader.js";
11
+ import { KvkFileReader, KvkFileWriter } from "@keymanapp/common-types";
12
+ import KvksFileWriter from "../../src/types/kvks/kvks-file-writer.js";
13
+ /**
14
+ *
15
+ * @param actual input buffer
16
+ * @param expected expected buffer
17
+ * @returns
18
+ */
19
+ function assertBufferMatch(actual, expected) {
20
+ const sourceHex = hexy(actual);
21
+ const expectedHex = hexy(expected);
22
+ const diff = gitDiff(expectedHex, sourceHex);
23
+ assert(!diff, 'Buffers did not match:\n' + diff);
24
+ assert.equal(actual.length, expected.length, 'Buffer lengths are not the same');
25
+ assert.deepEqual(actual, expected); // double check buffers: hexy can return '' on failure
26
+ }
27
+ describe('kvk-file-reader', function () {
28
+ it('kvk-file-reader should round-trip with kvk-file-writer', function () {
29
+ const path = makePathToFixture('kvks', 'khmer_angkor.kvk');
30
+ const input = fs.readFileSync(path);
31
+ const reader = new KvkFileReader();
32
+ const vk = reader.read(input);
33
+ const writer = new KvkFileWriter();
34
+ const output = writer.write(vk);
35
+ assertBufferMatch(input, Buffer.from(output));
36
+ // and check the 2nd generation also
37
+ const vk2 = reader.read(output);
38
+ assert.deepEqual(vk2, vk);
39
+ });
40
+ });
41
+ describe('kvks-file-reader', function () {
42
+ it('kvks-file-reader should compile with kvk-file-writer', function () {
43
+ const inputPath = makePathToFixture('kvks', 'khmer_angkor.kvks');
44
+ const compiledPath = makePathToFixture('kvks', 'khmer_angkor.kvk');
45
+ const input = fs.readFileSync(inputPath);
46
+ const compiled = fs.readFileSync(compiledPath);
47
+ const reader = new KvksFileReader();
48
+ const kvks = reader.read(input);
49
+ assert.doesNotThrow(() => {
50
+ reader.validate(kvks);
51
+ });
52
+ const invalidVkeys = [];
53
+ const vk = reader.transform(kvks, invalidVkeys);
54
+ assert.isEmpty(invalidVkeys);
55
+ const writer = new KvkFileWriter();
56
+ const output = writer.write(vk);
57
+ assertBufferMatch(Buffer.from(output), compiled);
58
+ });
59
+ describe('kvks-file-writer', function () {
60
+ it('kvks-file-writer should match what kvk-file-reader reads', function () {
61
+ const kvkIn = makePathToFixture('kvks', 'khmer_angkor.kvk');
62
+ const kvkBuf = fs.readFileSync(kvkIn);
63
+ const kvkReader = new KvkFileReader();
64
+ const kvksReader = new KvksFileReader();
65
+ const vk = kvkReader.read(kvkBuf);
66
+ const kvksWriter = new KvksFileWriter();
67
+ const kvksOut = kvksWriter.write(vk);
68
+ // Now, re-read kvk from the kvks
69
+ const kvks = kvksReader.read(Buffer.from(kvksOut));
70
+ assert.doesNotThrow(() => {
71
+ kvksReader.validate(kvks);
72
+ });
73
+ const invalidVkeys = [];
74
+ const vk2 = kvksReader.transform(kvks, invalidVkeys);
75
+ assert.isEmpty(invalidVkeys);
76
+ // make sure the binary is the same
77
+ assert.deepEqual(vk2, vk);
78
+ });
79
+ it('should have identical input and output for kvk and kvks', function () {
80
+ const path = makePathToFixture('kvks', 'balochi_inpage.kvks');
81
+ const input = fs.readFileSync(path);
82
+ const reader = new KvksFileReader();
83
+ const kvksExpected = reader.read(input);
84
+ const invalidVkeys = [];
85
+ const vkExpected = reader.transform(kvksExpected, invalidVkeys);
86
+ assert.isEmpty(invalidVkeys);
87
+ const writer = new KvksFileWriter();
88
+ const output = writer.write(vkExpected);
89
+ // We compare the (re)loaded data, because there may be
90
+ // minor, irrelevant formatting differences in the emitted xml
91
+ const kvks = reader.read(Buffer.from(output, 'utf8'));
92
+ const vk = reader.transform(kvks);
93
+ assert.deepEqual(vk, vkExpected);
94
+ // Then compare against the .kvk
95
+ const kvkPath = makePathToFixture('kvks', 'balochi_inpage.kvk');
96
+ const kvkInput = fs.readFileSync(kvkPath);
97
+ const kvkReader = new KvkFileReader();
98
+ const kvk = kvkReader.read(kvkInput);
99
+ assert.deepEqual(kvk, vk);
100
+ const kvkWriter = new KvkFileWriter();
101
+ const kvkOutput = kvkWriter.write(vk);
102
+ const kvkReread = kvkReader.read(kvkOutput);
103
+ assert.deepEqual(kvkReread, kvk);
104
+ });
105
+ });
106
+ });
107
+ //# sourceMappingURL=test-kvk-round-trip.js.map
108
+ //# debugId=8a47882d-8280-5174-a0ef-2b8359d7b15e
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-kvk-round-trip.js","sources":["../../../test/kvks/test-kvk-round-trip.ts"],"sourceRoot":"","names":[],"mappings":"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","debug_id":"8a47882d-8280-5174-a0ef-2b8359d7b15e"}
@@ -0,0 +1,6 @@
1
+ import 'mocha';
2
+ import { VisualKeyboard as VK } from "@keymanapp/common-types";
3
+ import VisualKeyboard = VK.VisualKeyboard;
4
+ export declare function verify_khmer_angkor(vk: VisualKeyboard): void;
5
+ export declare function verify_balochi_inpage(vk: VisualKeyboard): void;
6
+ //# sourceMappingURL=test-kvk-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-kvk-utils.d.ts","sourceRoot":"","sources":["../../../test/kvks/test-kvk-utils.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,CAAC;AAEf,OAAO,EAAE,cAAc,IAAI,EAAE,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC;AAO1C,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,cAAc,QAgBrD;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,cAAc,QAkBvD"}
@@ -0,0 +1,42 @@
1
+ // NOTE: this is a copy of common/web/types/test/kvk/test-kvk-utils.ts
2
+
3
+ !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]="bc45986c-38d6-5302-9671-083e6bd4c1b1")}catch(e){}}();
4
+ import 'mocha';
5
+ import { assert } from 'chai';
6
+ import { Constants } from '@keymanapp/common-types';
7
+ var USVirtualKeyCodes = Constants.USVirtualKeyCodes;
8
+ export function verify_khmer_angkor(vk) {
9
+ assert.equal(vk.header.flags, 8 /* VisualKeyboardHeaderFlags.kvkhAltGr */);
10
+ assert.equal(vk.header.associatedKeyboard, 'khmer_angkor');
11
+ assert.equal(vk.header.ansiFont.name, 'Arial');
12
+ assert.equal(vk.header.ansiFont.size, -12);
13
+ assert.equal(vk.header.unicodeFont.name, 'Khmer Busra Kbd');
14
+ assert.equal(vk.header.unicodeFont.size, 16);
15
+ assert.equal(vk.keys.length, 186);
16
+ assert.equal(vk.keys[0].flags, 2 /* VisualKeyboardKeyFlags.kvkkUnicode */);
17
+ assert.equal(vk.keys[0].vkey, USVirtualKeyCodes.K_B);
18
+ assert.equal(vk.keys[0].shift, 64 /* VisualKeyboardShiftState.KVKS_RALT */);
19
+ assert.equal(vk.keys[0].text, 'ឞ');
20
+ assert.equal(vk.keys[185].flags, 2 /* VisualKeyboardKeyFlags.kvkkUnicode */);
21
+ assert.equal(vk.keys[185].vkey, USVirtualKeyCodes.K_COMMA);
22
+ assert.equal(vk.keys[185].shift, 1 /* VisualKeyboardShiftState.KVKS_SHIFT */);
23
+ assert.equal(vk.keys[185].text, '');
24
+ }
25
+ export function verify_balochi_inpage(vk) {
26
+ assert.equal(vk.header.flags, 8 /* VisualKeyboardHeaderFlags.kvkhAltGr */ | 2 /* VisualKeyboardHeaderFlags.kvkhDisplayUnderlying */);
27
+ assert.equal(vk.header.associatedKeyboard, 'balochi_inpage');
28
+ assert.equal(vk.header.unicodeFont.name, 'Lateef');
29
+ assert.equal(vk.header.unicodeFont.size, 14);
30
+ assert.equal(vk.keys.length, 147);
31
+ assert.equal(vk.keys[0].flags, 2 /* VisualKeyboardKeyFlags.kvkkUnicode */);
32
+ assert.equal(vk.keys[0].vkey, USVirtualKeyCodes.K_BKQUOTE);
33
+ assert.equal(vk.keys[0].shift, 64 /* VisualKeyboardShiftState.KVKS_RALT */);
34
+ assert.equal(vk.keys[0].text, '‍');
35
+ assert.equal(vk.keys[30].flags, 2 /* VisualKeyboardKeyFlags.kvkkUnicode */ | 1 /* VisualKeyboardKeyFlags.kvkkBitmap */);
36
+ assert.equal(vk.keys[30].vkey, USVirtualKeyCodes.K_COMMA);
37
+ assert.equal(vk.keys[30].shift, 8 /* VisualKeyboardShiftState.KVKS_LCTRL */);
38
+ assert.equal(vk.keys[30].text, '');
39
+ assert.equal(vk.keys[30].bitmap.byteLength, 35766);
40
+ }
41
+ //# sourceMappingURL=test-kvk-utils.js.map
42
+ //# debugId=bc45986c-38d6-5302-9671-083e6bd4c1b1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-kvk-utils.js","sources":["../../../test/kvks/test-kvk-utils.ts"],"sourceRoot":"","names":[],"mappings":"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","debug_id":"bc45986c-38d6-5302-9671-083e6bd4c1b1"}
@@ -0,0 +1,2 @@
1
+ import 'mocha';
2
+ //# sourceMappingURL=test-kvks-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-kvks-file.d.ts","sourceRoot":"","sources":["../../../test/kvks/test-kvks-file.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,CAAC"}