@keymanapp/common-types 17.0.154-alpha → 17.0.156-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/build/src/consts/virtual-key-constants.d.ts +144 -138
  2. package/build/src/consts/virtual-key-constants.d.ts.map +1 -1
  3. package/build/src/consts/virtual-key-constants.js +258 -252
  4. package/build/src/consts/virtual-key-constants.js.map +1 -1
  5. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.d.ts +8 -7
  6. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.d.ts.map +1 -1
  7. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.js +76 -74
  8. package/build/src/keyman-touch-layout/keyman-touch-layout-file-reader.js.map +1 -1
  9. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.d.ts +31 -24
  10. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.d.ts.map +1 -1
  11. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.js +119 -75
  12. package/build/src/keyman-touch-layout/keyman-touch-layout-file-writer.js.map +1 -1
  13. package/build/src/keyman-touch-layout/keyman-touch-layout-file.d.ts +78 -76
  14. package/build/src/keyman-touch-layout/keyman-touch-layout-file.d.ts.map +1 -1
  15. package/build/src/keyman-touch-layout/keyman-touch-layout-file.js +28 -26
  16. package/build/src/keyman-touch-layout/keyman-touch-layout-file.js.map +1 -1
  17. package/build/src/kmx/element-string.d.ts +26 -24
  18. package/build/src/kmx/element-string.d.ts.map +1 -1
  19. package/build/src/kmx/element-string.js +121 -119
  20. package/build/src/kmx/element-string.js.map +1 -1
  21. package/build/src/kmx/keyman-targets.d.ts +23 -0
  22. package/build/src/kmx/keyman-targets.d.ts.map +1 -0
  23. package/build/src/kmx/keyman-targets.js +80 -0
  24. package/build/src/kmx/keyman-targets.js.map +1 -0
  25. package/build/src/kmx/kmx-builder.d.ts +35 -33
  26. package/build/src/kmx/kmx-builder.d.ts.map +1 -1
  27. package/build/src/kmx/kmx-builder.js +190 -188
  28. package/build/src/kmx/kmx-builder.js.map +1 -1
  29. package/build/src/kmx/kmx-file-reader.d.ts +16 -7
  30. package/build/src/kmx/kmx-file-reader.d.ts.map +1 -1
  31. package/build/src/kmx/kmx-file-reader.js +135 -38
  32. package/build/src/kmx/kmx-file-reader.js.map +1 -1
  33. package/build/src/kmx/kmx-plus-builder/build-disp.d.ts +20 -18
  34. package/build/src/kmx/kmx-plus-builder/build-disp.d.ts.map +1 -1
  35. package/build/src/kmx/kmx-plus-builder/build-disp.js +27 -25
  36. package/build/src/kmx/kmx-plus-builder/build-disp.js.map +1 -1
  37. package/build/src/kmx/kmx-plus-builder/build-elem.d.ts +31 -29
  38. package/build/src/kmx/kmx-plus-builder/build-elem.d.ts.map +1 -1
  39. package/build/src/kmx/kmx-plus-builder/build-elem.js +90 -88
  40. package/build/src/kmx/kmx-plus-builder/build-elem.js.map +1 -1
  41. package/build/src/kmx/kmx-plus-builder/build-keys.d.ts +60 -58
  42. package/build/src/kmx/kmx-plus-builder/build-keys.d.ts.map +1 -1
  43. package/build/src/kmx/kmx-plus-builder/build-keys.js +109 -107
  44. package/build/src/kmx/kmx-plus-builder/build-keys.js.map +1 -1
  45. package/build/src/kmx/kmx-plus-builder/build-layr.d.ts +56 -54
  46. package/build/src/kmx/kmx-plus-builder/build-layr.d.ts.map +1 -1
  47. package/build/src/kmx/kmx-plus-builder/build-layr.js +101 -99
  48. package/build/src/kmx/kmx-plus-builder/build-layr.js.map +1 -1
  49. package/build/src/kmx/kmx-plus-builder/build-list.d.ts +38 -36
  50. package/build/src/kmx/kmx-plus-builder/build-list.d.ts.map +1 -1
  51. package/build/src/kmx/kmx-plus-builder/build-list.js +67 -65
  52. package/build/src/kmx/kmx-plus-builder/build-list.js.map +1 -1
  53. package/build/src/kmx/kmx-plus-builder/build-loca.d.ts +14 -12
  54. package/build/src/kmx/kmx-plus-builder/build-loca.d.ts.map +1 -1
  55. package/build/src/kmx/kmx-plus-builder/build-loca.js +22 -20
  56. package/build/src/kmx/kmx-plus-builder/build-loca.js.map +1 -1
  57. package/build/src/kmx/kmx-plus-builder/build-meta.d.ts +19 -17
  58. package/build/src/kmx/kmx-plus-builder/build-meta.d.ts.map +1 -1
  59. package/build/src/kmx/kmx-plus-builder/build-meta.js +23 -21
  60. package/build/src/kmx/kmx-plus-builder/build-meta.js.map +1 -1
  61. package/build/src/kmx/kmx-plus-builder/build-name.d.ts +14 -12
  62. package/build/src/kmx/kmx-plus-builder/build-name.d.ts.map +1 -1
  63. package/build/src/kmx/kmx-plus-builder/build-name.js +25 -23
  64. package/build/src/kmx/kmx-plus-builder/build-name.js.map +1 -1
  65. package/build/src/kmx/kmx-plus-builder/build-sect.d.ts +18 -16
  66. package/build/src/kmx/kmx-plus-builder/build-sect.d.ts.map +1 -1
  67. package/build/src/kmx/kmx-plus-builder/build-sect.js +16 -14
  68. package/build/src/kmx/kmx-plus-builder/build-sect.js.map +1 -1
  69. package/build/src/kmx/kmx-plus-builder/build-strs.d.ts +25 -23
  70. package/build/src/kmx/kmx-plus-builder/build-strs.d.ts.map +1 -1
  71. package/build/src/kmx/kmx-plus-builder/build-strs.js +47 -45
  72. package/build/src/kmx/kmx-plus-builder/build-strs.js.map +1 -1
  73. package/build/src/kmx/kmx-plus-builder/build-tran.d.ts +35 -33
  74. package/build/src/kmx/kmx-plus-builder/build-tran.d.ts.map +1 -1
  75. package/build/src/kmx/kmx-plus-builder/build-tran.js +70 -68
  76. package/build/src/kmx/kmx-plus-builder/build-tran.js.map +1 -1
  77. package/build/src/kmx/kmx-plus-builder/build-uset.d.ts +33 -31
  78. package/build/src/kmx/kmx-plus-builder/build-uset.d.ts.map +1 -1
  79. package/build/src/kmx/kmx-plus-builder/build-uset.js +61 -59
  80. package/build/src/kmx/kmx-plus-builder/build-uset.js.map +1 -1
  81. package/build/src/kmx/kmx-plus-builder/build-vars.d.ts +24 -22
  82. package/build/src/kmx/kmx-plus-builder/build-vars.d.ts.map +1 -1
  83. package/build/src/kmx/kmx-plus-builder/build-vars.js +49 -47
  84. package/build/src/kmx/kmx-plus-builder/build-vars.js.map +1 -1
  85. package/build/src/kmx/kmx-plus-builder/build-vkey.d.ts +18 -16
  86. package/build/src/kmx/kmx-plus-builder/build-vkey.d.ts.map +1 -1
  87. package/build/src/kmx/kmx-plus-builder/build-vkey.js +25 -23
  88. package/build/src/kmx/kmx-plus-builder/build-vkey.js.map +1 -1
  89. package/build/src/kmx/kmx-plus-builder/builder-section.d.ts +12 -10
  90. package/build/src/kmx/kmx-plus-builder/builder-section.d.ts.map +1 -1
  91. package/build/src/kmx/kmx-plus-builder/builder-section.js +5 -3
  92. package/build/src/kmx/kmx-plus-builder/builder-section.js.map +1 -1
  93. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.d.ts +49 -47
  94. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.d.ts.map +1 -1
  95. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.js +146 -144
  96. package/build/src/kmx/kmx-plus-builder/kmx-plus-builder.js.map +1 -1
  97. package/build/src/kmx/kmx-plus.d.ts +331 -329
  98. package/build/src/kmx/kmx-plus.d.ts.map +1 -1
  99. package/build/src/kmx/kmx-plus.js +835 -833
  100. package/build/src/kmx/kmx-plus.js.map +1 -1
  101. package/build/src/kmx/kmx.d.ts +235 -209
  102. package/build/src/kmx/kmx.d.ts.map +1 -1
  103. package/build/src/kmx/kmx.js +299 -276
  104. package/build/src/kmx/kmx.js.map +1 -1
  105. package/build/src/kmx/string-list.d.ts +36 -34
  106. package/build/src/kmx/string-list.d.ts.map +1 -1
  107. package/build/src/kmx/string-list.js +85 -83
  108. package/build/src/kmx/string-list.js.map +1 -1
  109. package/build/src/kpj/keyman-developer-project.d.ts +74 -63
  110. package/build/src/kpj/keyman-developer-project.d.ts.map +1 -1
  111. package/build/src/kpj/keyman-developer-project.js +165 -146
  112. package/build/src/kpj/keyman-developer-project.js.map +1 -1
  113. package/build/src/kpj/kpj-file-reader.d.ts +21 -19
  114. package/build/src/kpj/kpj-file-reader.d.ts.map +1 -1
  115. package/build/src/kpj/kpj-file-reader.js +110 -96
  116. package/build/src/kpj/kpj-file-reader.js.map +1 -1
  117. package/build/src/kpj/kpj-file.d.ts +41 -39
  118. package/build/src/kpj/kpj-file.d.ts.map +1 -1
  119. package/build/src/kpj/kpj-file.js +13 -11
  120. package/build/src/kpj/kpj-file.js.map +1 -1
  121. package/build/src/kvk/kvk-file-reader.d.ts +7 -5
  122. package/build/src/kvk/kvk-file-reader.d.ts.map +1 -1
  123. package/build/src/kvk/kvk-file-reader.js +38 -35
  124. package/build/src/kvk/kvk-file-reader.js.map +1 -1
  125. package/build/src/kvk/kvk-file-writer.d.ts +22 -20
  126. package/build/src/kvk/kvk-file-writer.d.ts.map +1 -1
  127. package/build/src/kvk/kvk-file-writer.js +78 -67
  128. package/build/src/kvk/kvk-file-writer.js.map +1 -1
  129. package/build/src/kvk/kvk-file.d.ts +68 -65
  130. package/build/src/kvk/kvk-file.d.ts.map +1 -1
  131. package/build/src/kvk/kvk-file.js +67 -64
  132. package/build/src/kvk/kvk-file.js.map +1 -1
  133. package/build/src/kvk/kvks-file-reader.d.ts +26 -23
  134. package/build/src/kvk/kvks-file-reader.d.ts.map +1 -1
  135. package/build/src/kvk/kvks-file-reader.js +179 -151
  136. package/build/src/kvk/kvks-file-reader.js.map +1 -1
  137. package/build/src/kvk/kvks-file-writer.d.ts +9 -6
  138. package/build/src/kvk/kvks-file-writer.d.ts.map +1 -1
  139. package/build/src/kvk/kvks-file-writer.js +107 -98
  140. package/build/src/kvk/kvks-file-writer.js.map +1 -1
  141. package/build/src/kvk/kvks-file.d.ts +46 -44
  142. package/build/src/kvk/kvks-file.d.ts.map +1 -1
  143. package/build/src/kvk/kvks-file.js +12 -10
  144. package/build/src/kvk/kvks-file.js.map +1 -1
  145. package/build/src/kvk/visual-keyboard.d.ts +47 -35
  146. package/build/src/kvk/visual-keyboard.d.ts.map +1 -1
  147. package/build/src/kvk/visual-keyboard.js +73 -61
  148. package/build/src/kvk/visual-keyboard.js.map +1 -1
  149. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.d.ts +58 -56
  150. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.d.ts.map +1 -1
  151. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.js +22 -20
  152. package/build/src/ldml-keyboard/ldml-keyboard-testdata-xml.js.map +1 -1
  153. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.d.ts +97 -95
  154. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.d.ts.map +1 -1
  155. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.js +387 -385
  156. package/build/src/ldml-keyboard/ldml-keyboard-xml-reader.js.map +1 -1
  157. package/build/src/ldml-keyboard/ldml-keyboard-xml.d.ts +163 -161
  158. package/build/src/ldml-keyboard/ldml-keyboard-xml.d.ts.map +1 -1
  159. package/build/src/ldml-keyboard/ldml-keyboard-xml.js +41 -39
  160. package/build/src/ldml-keyboard/ldml-keyboard-xml.js.map +1 -1
  161. package/build/src/ldml-keyboard/pattern-parser.d.ts +138 -136
  162. package/build/src/ldml-keyboard/pattern-parser.d.ts.map +1 -1
  163. package/build/src/ldml-keyboard/pattern-parser.js +245 -243
  164. package/build/src/ldml-keyboard/pattern-parser.js.map +1 -1
  165. package/build/src/ldml-keyboard/unicodeset-parser-api.d.ts +40 -38
  166. package/build/src/ldml-keyboard/unicodeset-parser-api.d.ts.map +1 -1
  167. package/build/src/ldml-keyboard/unicodeset-parser-api.js +30 -28
  168. package/build/src/ldml-keyboard/unicodeset-parser-api.js.map +1 -1
  169. package/build/src/main.d.ts +36 -29
  170. package/build/src/main.d.ts.map +1 -1
  171. package/build/src/main.js +35 -28
  172. package/build/src/main.js.map +1 -1
  173. package/build/src/osk/osk.d.ts +25 -0
  174. package/build/src/osk/osk.d.ts.map +1 -0
  175. package/build/src/osk/osk.js +89 -0
  176. package/build/src/osk/osk.js.map +1 -0
  177. package/build/src/package/kmp-json-file.d.ts +69 -68
  178. package/build/src/package/kmp-json-file.d.ts.map +1 -1
  179. package/build/src/package/kmp-json-file.js +4 -2
  180. package/build/src/package/kmp-json-file.js.map +1 -1
  181. package/build/src/package/kps-file.d.ts +100 -98
  182. package/build/src/package/kps-file.d.ts.map +1 -1
  183. package/build/src/package/kps-file.js +18 -16
  184. package/build/src/package/kps-file.js.map +1 -1
  185. package/build/src/schemas/displaymap.schema.d.ts +60 -0
  186. package/build/src/schemas/displaymap.schema.d.ts.map +1 -0
  187. package/build/src/schemas/displaymap.schema.js +38 -0
  188. package/build/src/schemas/displaymap.schema.js.map +1 -0
  189. package/build/src/schemas/keyman-touch-layout.clean.spec.d.ts +230 -0
  190. package/build/src/schemas/keyman-touch-layout.clean.spec.d.ts.map +1 -0
  191. package/build/src/schemas/keyman-touch-layout.clean.spec.js +154 -0
  192. package/build/src/schemas/keyman-touch-layout.clean.spec.js.map +1 -0
  193. package/build/src/schemas/keyman-touch-layout.spec.d.ts +229 -0
  194. package/build/src/schemas/keyman-touch-layout.spec.d.ts.map +1 -0
  195. package/build/src/schemas/keyman-touch-layout.spec.js +142 -0
  196. package/build/src/schemas/keyman-touch-layout.spec.js.map +1 -0
  197. package/build/src/schemas/kpj-9.0.schema.d.ts +155 -0
  198. package/build/src/schemas/kpj-9.0.schema.d.ts.map +1 -0
  199. package/build/src/schemas/kpj-9.0.schema.js +134 -0
  200. package/build/src/schemas/kpj-9.0.schema.js.map +1 -0
  201. package/build/src/schemas/kpj.schema.d.ts +121 -0
  202. package/build/src/schemas/kpj.schema.d.ts.map +1 -0
  203. package/build/src/schemas/kpj.schema.js +128 -0
  204. package/build/src/schemas/kpj.schema.js.map +1 -0
  205. package/build/src/schemas/kvks.schema.d.ts +163 -0
  206. package/build/src/schemas/kvks.schema.d.ts.map +1 -0
  207. package/build/src/schemas/kvks.schema.js +185 -0
  208. package/build/src/schemas/kvks.schema.js.map +1 -0
  209. package/build/src/schemas/ldml-keyboard.schema.d.ts +634 -0
  210. package/build/src/schemas/ldml-keyboard.schema.d.ts.map +1 -0
  211. package/build/src/schemas/ldml-keyboard.schema.js +705 -0
  212. package/build/src/schemas/ldml-keyboard.schema.js.map +1 -0
  213. package/build/src/schemas/ldml-keyboardtest.schema.d.ts +191 -0
  214. package/build/src/schemas/ldml-keyboardtest.schema.d.ts.map +1 -0
  215. package/build/src/schemas/ldml-keyboardtest.schema.js +224 -0
  216. package/build/src/schemas/ldml-keyboardtest.schema.js.map +1 -0
  217. package/build/src/schemas.d.ts +1757 -0
  218. package/build/src/schemas.d.ts.map +1 -0
  219. package/build/src/schemas.js +22 -0
  220. package/build/src/schemas.js.map +1 -0
  221. package/build/src/util/common-events.d.ts +51 -49
  222. package/build/src/util/common-events.d.ts.map +1 -1
  223. package/build/src/util/common-events.js +31 -29
  224. package/build/src/util/common-events.js.map +1 -1
  225. package/build/src/util/compiler-interfaces.d.ts +296 -136
  226. package/build/src/util/compiler-interfaces.d.ts.map +1 -1
  227. package/build/src/util/compiler-interfaces.js +294 -104
  228. package/build/src/util/compiler-interfaces.js.map +1 -1
  229. package/build/src/util/errors.d.ts +8 -0
  230. package/build/src/util/errors.d.ts.map +1 -0
  231. package/build/src/util/errors.js +8 -0
  232. package/build/src/util/errors.js.map +1 -0
  233. package/build/src/util/file-types.d.ts +98 -0
  234. package/build/src/util/file-types.d.ts.map +1 -0
  235. package/build/src/util/file-types.js +117 -0
  236. package/build/src/util/file-types.js.map +1 -0
  237. package/build/src/util/util.d.ts +32 -30
  238. package/build/src/util/util.d.ts.map +1 -1
  239. package/build/src/util/util.js +98 -96
  240. package/build/src/util/util.js.map +1 -1
  241. package/package.json +23 -4
  242. package/build/src/keyman-touch-layout.clean.spec.json +0 -170
  243. package/build/src/kpj.schema.json +0 -127
  244. package/build/src/kvks.schema.json +0 -182
  245. package/build/src/ldml-keyboard.schema.json +0 -702
  246. package/build/src/ldml-keyboardtest.schema.json +0 -221
@@ -1,243 +1,245 @@
1
- /**
2
- * Utilities for transform and marker processing
3
- */
4
- import { constants } from "@keymanapp/ldml-keyboard-constants";
5
- import { MATCH_QUAD_ESCAPE, isOneChar, unescapeOneQuadString, unescapeString } from "../util/util.js";
6
- /**
7
- * Helper function for extracting matched items
8
- * @param str input string
9
- * @param match global RegEx to use
10
- * @returns array of matched values
11
- */
12
- function matchArray(str, match) {
13
- const refs = (str || '').matchAll(match);
14
- return Array.from(refs).map(r => r[1]);
15
- }
16
- /**
17
- * Common regex for an ID
18
- */
19
- const COMMON_ID = /^[0-9A-Za-z_]{1,32}$/;
20
- /**
21
- * Class for helping with markers
22
- */
23
- export class MarkerParser {
24
- /**
25
- * A marker id has the same constraint as a key id. TODO-LDML: Needs to be reflected in the spec
26
- */
27
- static ID = COMMON_ID;
28
- /**
29
- * Special marker reference referring to any marker
30
- */
31
- static ANY_MARKER = '\\m{.}';
32
- /**
33
- * id of the 'any' marker
34
- */
35
- static ANY_MARKER_ID = '.';
36
- /**
37
- * Marker sentinel as a string - U+FFFF
38
- */
39
- static SENTINEL = String.fromCodePoint(constants.marker_sentinel);
40
- /**
41
- * Matches all markers.
42
- */
43
- static SENTINEL_ALL_MARKERS = this.SENTINEL + this.SENTINEL;
44
- /** Minimum ID (trailing code unit) */
45
- static MIN_MARKER_INDEX = constants.marker_min_index;
46
- /** Index meaning 'any marker' == `\m{.}` */
47
- static ANY_MARKER_INDEX = constants.marker_any_index;
48
- /** Maximum usable marker index */
49
- static MAX_MARKER_INDEX = constants.marker_max_index;
50
- /** Max count of markers */
51
- static MAX_MARKER_COUNT = constants.marker_max_count;
52
- /**
53
- * Pattern for matching a marker reference, OR the special marker \m{.}
54
- */
55
- static REFERENCE = /\\m{([0-9A-Za-z_]{1,32}|\.)}/g;
56
- /**
57
- * parse a string into marker references
58
- * @param str input string such as "\m{a} … \m{.}"
59
- * @returns `[]` or an array of all markers referenced
60
- */
61
- static allReferences(str) {
62
- if (!str) {
63
- return [];
64
- }
65
- return matchArray(str, this.REFERENCE);
66
- }
67
- /** @returns string for marker #n */
68
- static markerOutput(n) {
69
- if (n < MarkerParser.MIN_MARKER_INDEX || n > MarkerParser.ANY_MARKER_INDEX) {
70
- throw RangeError(`Internal Error: marker index out of range ${n}`);
71
- }
72
- return this.SENTINEL + String.fromCharCode(n);
73
- }
74
- /** @returns all marker strings as sentinel values */
75
- static toSentinelString(s, markers) {
76
- if (!s)
77
- return s;
78
- return s.replaceAll(this.REFERENCE, (sub, arg) => {
79
- if (arg === MarkerParser.ANY_MARKER_ID) {
80
- return MarkerParser.SENTINEL_ALL_MARKERS;
81
- }
82
- if (!markers) {
83
- throw RangeError(`Internal Error: Could not find marker \\m{${arg}} (no markers defined)`);
84
- }
85
- const order = markers.getItemOrder(arg);
86
- if (order === -1) {
87
- throw RangeError(`Internal Error: Could not find marker \\m{${arg}}`);
88
- }
89
- else if (order >= MarkerParser.MAX_MARKER_INDEX) {
90
- throw RangeError(`Internal Error: marker \\m{${arg}} has out of range index ${order}`);
91
- }
92
- else {
93
- return MarkerParser.markerOutput(order + 1);
94
- }
95
- });
96
- }
97
- }
98
- /**
99
- * Class for helping with markers
100
- */
101
- export class VariableParser {
102
- /**
103
- * A marker id has the same constraint as a key id. TODO-LDML: Needs to be reflected in the spec
104
- */
105
- static ID = COMMON_ID;
106
- /**
107
- * Pattern for matching a string reference `$(str)`
108
- */
109
- static STRING_REFERENCE = /\${([0-9A-Za-z_]{1,32})}/g;
110
- /**
111
- * Pattern for matching a set reference `$[set]`
112
- */
113
- static SET_REFERENCE = /\$\[([0-9A-Za-z_]{1,32})\]/g;
114
- /**
115
- * Pattern for matching a capture set reference `($[set])`
116
- */
117
- static CAPTURE_SET_REFERENCE = /\(\$\[([0-9A-Za-z_]{1,32})\]\)/g;
118
- /**
119
- * `$[1:variable]`
120
- * This regex matches the whole string.
121
- */
122
- static MAPPED_SET_REFERENCE = /^\$\[1:([0-9A-Za-z_]{1,32})\]$/;
123
- /**
124
- * parse a string into references
125
- * @param str input string
126
- * @returns `[]` or an array of all string references referenced
127
- */
128
- static allStringReferences(str) {
129
- return matchArray(str, this.STRING_REFERENCE);
130
- }
131
- /**
132
- * parse a string into references
133
- * @param str input string
134
- * @returns `[]` or an array of all string references referenced
135
- */
136
- static allSetReferences(str) {
137
- return matchArray(str, this.SET_REFERENCE);
138
- }
139
- /**
140
- * Split an input string into a proper set
141
- * @param str input string
142
- * @returns
143
- */
144
- static setSplitter(str) {
145
- const s = str?.trim();
146
- if (!s)
147
- return [];
148
- return s.split(/\s+/);
149
- }
150
- }
151
- /** for ElementParser.segment() */
152
- export var ElementType;
153
- (function (ElementType) {
154
- ElementType["codepoint"] = ".";
155
- ElementType["escaped"] = "\\";
156
- ElementType["uset"] = "[";
157
- ElementType["string"] = "*";
158
- })(ElementType || (ElementType = {}));
159
- ;
160
- /** one portion of a segmented element string */
161
- export class ElementSegment {
162
- segment;
163
- type;
164
- /**
165
- * @param segment the string in the segment
166
- * @param type type of segment. Will be calculated if not provided.
167
- */
168
- constructor(segment, type) {
169
- this.segment = segment;
170
- if (type) {
171
- this.type = type;
172
- }
173
- else if (ElementParser.MATCH_USET.test(segment)) {
174
- this.type = ElementType.uset;
175
- }
176
- else if (ElementParser.MATCH_ESCAPED.test(segment)) {
177
- this.type = ElementType.escaped;
178
- }
179
- else {
180
- this.type = ElementType.codepoint;
181
- }
182
- }
183
- /** unescaped format */
184
- get unescaped() {
185
- if (this.type !== ElementType.escaped) {
186
- return this.segment;
187
- }
188
- else {
189
- if (MATCH_QUAD_ESCAPE.test(this.segment)) {
190
- return unescapeOneQuadString(this.segment);
191
- }
192
- else {
193
- return unescapeString(this.segment);
194
- }
195
- }
196
- }
197
- }
198
- ;
199
- /** Class for helping with Element strings (i.e. reorder) */
200
- export class ElementParser {
201
- /**
202
- * Matches any complex UnicodeSet that would otherwise be misinterpreted
203
- * by `MATCH_ELEMENT_SEGMENTS` due to nested `[]`'s.
204
- * For example, `[[a-z]-[aeiou]]` could be
205
- * mis-segmented into `[[a-z]`, `-`, `[aeiou]`, `]` */
206
- static MATCH_NESTED_SQUARE_BRACKETS = /\[[^\]]*\[/;
207
- /** Match (segment) UnicodeSets OR hex escapes OR single Unicode codepoints */
208
- static MATCH_ELEMENT_SEGMENTS = /(?:\[[^\]]*\]|\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,6}\}|\\u\{(?:[0-9a-fA-F]{1,6})(?: [0-9a-fA-F]{1,6}){1,}\}|.)/gu;
209
- /** Does it start with a UnicodeSet? Used to test the segments. */
210
- static MATCH_USET = /^\[/;
211
- /** Does it start with an escaped char? Used to test the segments. */
212
- static MATCH_ESCAPED = /^\\u/;
213
- /** Split a string into ElementSegments */
214
- static segment(str) {
215
- if (this.MATCH_NESTED_SQUARE_BRACKETS.test(str)) {
216
- throw Error(`Unsupported: nested square brackets in element segment: ${str}`);
217
- }
218
- const list = [];
219
- for (let m of str.match(ElementParser.MATCH_ELEMENT_SEGMENTS)) {
220
- const e = new ElementSegment(m);
221
- if (e.type === ElementType.escaped) {
222
- // unescape
223
- const { unescaped } = e;
224
- if (isOneChar(unescaped)) {
225
- list.push(e);
226
- }
227
- else {
228
- // need to split the escaped segment, \u{41 42} -> \u{41}, \u{42}
229
- for (let s of unescaped) {
230
- list.push(new ElementSegment(`\\u{${s.codePointAt(0).toString(16)}}`));
231
- }
232
- }
233
- }
234
- else {
235
- // all others
236
- list.push(e);
237
- }
238
- }
239
- return list;
240
- }
241
- }
242
- ;
243
- //# sourceMappingURL=pattern-parser.js.map
1
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5d8d02e2-0141-5569-ac2f-c05f5d932ccf")}catch(e){}}();
2
+ /**
3
+ * Utilities for transform and marker processing
4
+ */
5
+ import { constants } from "@keymanapp/ldml-keyboard-constants";
6
+ import { MATCH_QUAD_ESCAPE, isOneChar, unescapeOneQuadString, unescapeString } from "../util/util.js";
7
+ /**
8
+ * Helper function for extracting matched items
9
+ * @param str input string
10
+ * @param match global RegEx to use
11
+ * @returns array of matched values
12
+ */
13
+ function matchArray(str, match) {
14
+ const refs = (str || '').matchAll(match);
15
+ return Array.from(refs).map(r => r[1]);
16
+ }
17
+ /**
18
+ * Common regex for an ID
19
+ */
20
+ const COMMON_ID = /^[0-9A-Za-z_]{1,32}$/;
21
+ /**
22
+ * Class for helping with markers
23
+ */
24
+ export class MarkerParser {
25
+ /**
26
+ * A marker id has the same constraint as a key id. TODO-LDML: Needs to be reflected in the spec
27
+ */
28
+ static ID = COMMON_ID;
29
+ /**
30
+ * Special marker reference referring to any marker
31
+ */
32
+ static ANY_MARKER = '\\m{.}';
33
+ /**
34
+ * id of the 'any' marker
35
+ */
36
+ static ANY_MARKER_ID = '.';
37
+ /**
38
+ * Marker sentinel as a string - U+FFFF
39
+ */
40
+ static SENTINEL = String.fromCodePoint(constants.uc_sentinel);
41
+ /**
42
+ * Marker code as a string - U+0008
43
+ */
44
+ static MARKER_CODE = String.fromCodePoint(constants.marker_code);
45
+ /** Minimum ID (trailing code unit) */
46
+ static MIN_MARKER_INDEX = constants.marker_min_index;
47
+ /** Index meaning 'any marker' == `\m{.}` */
48
+ static ANY_MARKER_INDEX = constants.marker_any_index;
49
+ /** Maximum usable marker index */
50
+ static MAX_MARKER_INDEX = constants.marker_max_index;
51
+ /** Max count of markers */
52
+ static MAX_MARKER_COUNT = constants.marker_max_count;
53
+ /**
54
+ * Pattern for matching a marker reference, OR the special marker \m{.}
55
+ */
56
+ static REFERENCE = /\\m{([0-9A-Za-z_]{1,32}|\.)}/g;
57
+ /**
58
+ * parse a string into marker references
59
+ * @param str input string such as "\m{a} … \m{.}"
60
+ * @returns `[]` or an array of all markers referenced
61
+ */
62
+ static allReferences(str) {
63
+ if (!str) {
64
+ return [];
65
+ }
66
+ return matchArray(str, this.REFERENCE);
67
+ }
68
+ /** @returns string for marker #n */
69
+ static markerOutput(n) {
70
+ if (n < MarkerParser.MIN_MARKER_INDEX || n > MarkerParser.ANY_MARKER_INDEX) {
71
+ throw RangeError(`Internal Error: marker index out of range ${n}`);
72
+ }
73
+ return this.SENTINEL + this.MARKER_CODE + String.fromCharCode(n);
74
+ }
75
+ /** @returns all marker strings as sentinel values */
76
+ static toSentinelString(s, markers) {
77
+ if (!s)
78
+ return s;
79
+ return s.replaceAll(this.REFERENCE, (sub, arg) => {
80
+ if (arg === MarkerParser.ANY_MARKER_ID) {
81
+ return MarkerParser.markerOutput(MarkerParser.ANY_MARKER_INDEX);
82
+ }
83
+ if (!markers) {
84
+ throw RangeError(`Internal Error: Could not find marker \\m{${arg}} (no markers defined)`);
85
+ }
86
+ const order = markers.getItemOrder(arg);
87
+ if (order === -1) {
88
+ throw RangeError(`Internal Error: Could not find marker \\m{${arg}}`);
89
+ }
90
+ else if (order >= MarkerParser.MAX_MARKER_INDEX) {
91
+ throw RangeError(`Internal Error: marker \\m{${arg}} has out of range index ${order}`);
92
+ }
93
+ else {
94
+ return MarkerParser.markerOutput(order + 1);
95
+ }
96
+ });
97
+ }
98
+ }
99
+ /**
100
+ * Class for helping with markers
101
+ */
102
+ export class VariableParser {
103
+ /**
104
+ * A marker id has the same constraint as a key id. TODO-LDML: Needs to be reflected in the spec
105
+ */
106
+ static ID = COMMON_ID;
107
+ /**
108
+ * Pattern for matching a string reference `$(str)`
109
+ */
110
+ static STRING_REFERENCE = /\${([0-9A-Za-z_]{1,32})}/g;
111
+ /**
112
+ * Pattern for matching a set reference `$[set]`
113
+ */
114
+ static SET_REFERENCE = /\$\[([0-9A-Za-z_]{1,32})\]/g;
115
+ /**
116
+ * Pattern for matching a capture set reference `($[set])`
117
+ */
118
+ static CAPTURE_SET_REFERENCE = /\(\$\[([0-9A-Za-z_]{1,32})\]\)/g;
119
+ /**
120
+ * `$[1:variable]`
121
+ * This regex matches the whole string.
122
+ */
123
+ static MAPPED_SET_REFERENCE = /^\$\[1:([0-9A-Za-z_]{1,32})\]$/;
124
+ /**
125
+ * parse a string into references
126
+ * @param str input string
127
+ * @returns `[]` or an array of all string references referenced
128
+ */
129
+ static allStringReferences(str) {
130
+ return matchArray(str, this.STRING_REFERENCE);
131
+ }
132
+ /**
133
+ * parse a string into references
134
+ * @param str input string
135
+ * @returns `[]` or an array of all string references referenced
136
+ */
137
+ static allSetReferences(str) {
138
+ return matchArray(str, this.SET_REFERENCE);
139
+ }
140
+ /**
141
+ * Split an input string into a proper set
142
+ * @param str input string
143
+ * @returns
144
+ */
145
+ static setSplitter(str) {
146
+ const s = str?.trim();
147
+ if (!s)
148
+ return [];
149
+ return s.split(/\s+/);
150
+ }
151
+ }
152
+ /** for ElementParser.segment() */
153
+ export var ElementType;
154
+ (function (ElementType) {
155
+ ElementType["codepoint"] = ".";
156
+ ElementType["escaped"] = "\\";
157
+ ElementType["uset"] = "[";
158
+ ElementType["string"] = "*";
159
+ })(ElementType || (ElementType = {}));
160
+ ;
161
+ /** one portion of a segmented element string */
162
+ export class ElementSegment {
163
+ segment;
164
+ type;
165
+ /**
166
+ * @param segment the string in the segment
167
+ * @param type type of segment. Will be calculated if not provided.
168
+ */
169
+ constructor(segment, type) {
170
+ this.segment = segment;
171
+ if (type) {
172
+ this.type = type;
173
+ }
174
+ else if (ElementParser.MATCH_USET.test(segment)) {
175
+ this.type = ElementType.uset;
176
+ }
177
+ else if (ElementParser.MATCH_ESCAPED.test(segment)) {
178
+ this.type = ElementType.escaped;
179
+ }
180
+ else {
181
+ this.type = ElementType.codepoint;
182
+ }
183
+ }
184
+ /** unescaped format */
185
+ get unescaped() {
186
+ if (this.type !== ElementType.escaped) {
187
+ return this.segment;
188
+ }
189
+ else {
190
+ if (MATCH_QUAD_ESCAPE.test(this.segment)) {
191
+ return unescapeOneQuadString(this.segment);
192
+ }
193
+ else {
194
+ return unescapeString(this.segment);
195
+ }
196
+ }
197
+ }
198
+ }
199
+ ;
200
+ /** Class for helping with Element strings (i.e. reorder) */
201
+ export class ElementParser {
202
+ /**
203
+ * Matches any complex UnicodeSet that would otherwise be misinterpreted
204
+ * by `MATCH_ELEMENT_SEGMENTS` due to nested `[]`'s.
205
+ * For example, `[[a-z]-[aeiou]]` could be
206
+ * mis-segmented into `[[a-z]`, `-`, `[aeiou]`, `]` */
207
+ static MATCH_NESTED_SQUARE_BRACKETS = /\[[^\]]*\[/;
208
+ /** Match (segment) UnicodeSets OR hex escapes OR single Unicode codepoints */
209
+ static MATCH_ELEMENT_SEGMENTS = /(?:\[[^\]]*\]|\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,6}\}|\\u\{(?:[0-9a-fA-F]{1,6})(?: [0-9a-fA-F]{1,6}){1,}\}|.)/gu;
210
+ /** Does it start with a UnicodeSet? Used to test the segments. */
211
+ static MATCH_USET = /^\[/;
212
+ /** Does it start with an escaped char? Used to test the segments. */
213
+ static MATCH_ESCAPED = /^\\u/;
214
+ /** Split a string into ElementSegments */
215
+ static segment(str) {
216
+ if (this.MATCH_NESTED_SQUARE_BRACKETS.test(str)) {
217
+ throw Error(`Unsupported: nested square brackets in element segment: ${str}`);
218
+ }
219
+ const list = [];
220
+ for (let m of str.match(ElementParser.MATCH_ELEMENT_SEGMENTS)) {
221
+ const e = new ElementSegment(m);
222
+ if (e.type === ElementType.escaped) {
223
+ // unescape
224
+ const { unescaped } = e;
225
+ if (isOneChar(unescaped)) {
226
+ list.push(e);
227
+ }
228
+ else {
229
+ // need to split the escaped segment, \u{41 42} -> \u{41}, \u{42}
230
+ for (let s of unescaped) {
231
+ list.push(new ElementSegment(`\\u{${s.codePointAt(0).toString(16)}}`));
232
+ }
233
+ }
234
+ }
235
+ else {
236
+ // all others
237
+ list.push(e);
238
+ }
239
+ }
240
+ return list;
241
+ }
242
+ }
243
+ ;
244
+ //# debugId=5d8d02e2-0141-5569-ac2f-c05f5d932ccf
245
+ //# sourceMappingURL=pattern-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pattern-parser.js","sourceRoot":"","sources":["../../../src/ldml-keyboard/pattern-parser.ts"],"names":[],"mappings":"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"}
1
+ {"debug_id":"5d8d02e2-0141-5569-ac2f-c05f5d932ccf","file":"pattern-parser.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../../src/ldml-keyboard/pattern-parser.ts"],"version":3}
@@ -1,38 +1,40 @@
1
- /**
2
- * Abstraction for an interface capable of parsing a UnicodeSet
3
- */
4
- export interface UnicodeSetParser {
5
- /**
6
- * Parse a UnicodeSet into ranges
7
- * @param pattern string to parse such as `[a-z]`
8
- * @param rangeCount number of ranges to allow for
9
- */
10
- parseUnicodeSet(pattern: string, rangeCount: number): UnicodeSet | null;
11
- /**
12
- * Calculate the number of ranges in a UnicodeSet
13
- * @param pattern string to parse such as `[a-z]`
14
- * @returns number of ranges, or -1 (with callback-reported err) on err
15
- */
16
- sizeUnicodeSet(pattern: string): number;
17
- }
18
- /**
19
- * Parsed UnicodeSet, return value of of parseUnicodeSet()
20
- */
21
- export declare class UnicodeSet {
22
- pattern: string;
23
- ranges: number[][];
24
- /**
25
- * A UnicodeSet in range form.
26
- * For example, `[ħa-z]` will parse to
27
- * ranges = `[[0x41, 0x7A], [0x0127, 0x0127]]` meaning `[a,z], [ħ,ħ]`
28
- * @param pattern the pattern per UnicodeSet syntax such as `[a-z]`
29
- * @param ranges array of 2-element arrays, 'start' and 'end'.
30
- */
31
- constructor(pattern: string, ranges: number[][]);
32
- /**
33
- * Number of ranges
34
- */
35
- get length(): number;
36
- toString(): string;
37
- }
38
- //# sourceMappingURL=unicodeset-parser-api.d.ts.map
1
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="7f8aa4e7-e8b2-5199-b918-174035f8d904")}catch(e){}}();
2
+ /**
3
+ * Abstraction for an interface capable of parsing a UnicodeSet
4
+ */
5
+ export interface UnicodeSetParser {
6
+ /**
7
+ * Parse a UnicodeSet into ranges
8
+ * @param pattern string to parse such as `[a-z]`
9
+ * @param rangeCount number of ranges to allow for
10
+ */
11
+ parseUnicodeSet(pattern: string, rangeCount: number): UnicodeSet | null;
12
+ /**
13
+ * Calculate the number of ranges in a UnicodeSet
14
+ * @param pattern string to parse such as `[a-z]`
15
+ * @returns number of ranges, or -1 (with callback-reported err) on err
16
+ */
17
+ sizeUnicodeSet(pattern: string): number;
18
+ }
19
+ /**
20
+ * Parsed UnicodeSet, return value of of parseUnicodeSet()
21
+ */
22
+ export declare class UnicodeSet {
23
+ pattern: string;
24
+ ranges: number[][];
25
+ /**
26
+ * A UnicodeSet in range form.
27
+ * For example, `[ħa-z]` will parse to
28
+ * ranges = `[[0x41, 0x7A], [0x0127, 0x0127]]` meaning `[a,z], [ħ,ħ]`
29
+ * @param pattern the pattern per UnicodeSet syntax such as `[a-z]`
30
+ * @param ranges array of 2-element arrays, 'start' and 'end'.
31
+ */
32
+ constructor(pattern: string, ranges: number[][]);
33
+ /**
34
+ * Number of ranges
35
+ */
36
+ get length(): number;
37
+ toString(): string;
38
+ }
39
+ //# debugId=7f8aa4e7-e8b2-5199-b918-174035f8d904
40
+ //# sourceMappingURL=unicodeset-parser-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unicodeset-parser-api.d.ts","sourceRoot":"","sources":["../../../src/ldml-keyboard/unicodeset-parser-api.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAI,UAAU,GAAG,IAAI,CAAC;IACzE;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAI,MAAM,CAAC;CAC1C;AAED;;GAEG;AACH,qBAAa,UAAU;IAQF,OAAO,EAAE,MAAM;IAAS,MAAM,EAAE,MAAM,EAAE,EAAE;IAP7D;;;;;;OAMG;gBACgB,OAAO,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM,EAAE,EAAE;IAE7D;;OAEG;IACH,IAAI,MAAM,IAAK,MAAM,CAEpB;IAED,QAAQ,IAAK,MAAM;CAGpB"}
1
+ {"debug_id":"7f8aa4e7-e8b2-5199-b918-174035f8d904","file":"unicodeset-parser-api.d.ts","mappings":";AACA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAI,UAAU,GAAG,IAAI,CAAC;IACzE;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAI,MAAM,CAAC;CAC1C;AAED;;GAEG;AACH,qBAAa,UAAU;IAQF,OAAO,EAAE,MAAM;IAAS,MAAM,EAAE,MAAM,EAAE,EAAE;IAP7D;;;;;;OAMG;gBACgB,OAAO,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM,EAAE,EAAE;IAE7D;;OAEG;IACH,IAAI,MAAM,IAAK,MAAM,CAEpB;IAED,QAAQ,IAAK,MAAM;CAGpB","names":[],"sourceRoot":"","sources":["../../../src/ldml-keyboard/unicodeset-parser-api.ts"],"version":3}