@keymanapp/kmc-ldml 17.0.120-alpha → 17.0.122-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 (51) hide show
  1. package/build/src/compiler/compiler.d.ts +12 -2
  2. package/build/src/compiler/compiler.d.ts.map +1 -1
  3. package/build/src/compiler/compiler.js +39 -11
  4. package/build/src/compiler/compiler.js.map +1 -1
  5. package/build/src/compiler/disp.d.ts +2 -2
  6. package/build/src/compiler/disp.d.ts.map +1 -1
  7. package/build/src/compiler/disp.js.map +1 -1
  8. package/build/src/compiler/empty-compiler.d.ts +31 -0
  9. package/build/src/compiler/empty-compiler.d.ts.map +1 -0
  10. package/build/src/compiler/empty-compiler.js +56 -0
  11. package/build/src/compiler/empty-compiler.js.map +1 -0
  12. package/build/src/compiler/keys.d.ts +4 -4
  13. package/build/src/compiler/keys.d.ts.map +1 -1
  14. package/build/src/compiler/keys.js.map +1 -1
  15. package/build/src/compiler/layr.d.ts +2 -2
  16. package/build/src/compiler/layr.d.ts.map +1 -1
  17. package/build/src/compiler/layr.js.map +1 -1
  18. package/build/src/compiler/loca.d.ts +2 -2
  19. package/build/src/compiler/loca.d.ts.map +1 -1
  20. package/build/src/compiler/loca.js.map +1 -1
  21. package/build/src/compiler/messages.d.ts +40 -0
  22. package/build/src/compiler/messages.d.ts.map +1 -1
  23. package/build/src/compiler/messages.js +23 -0
  24. package/build/src/compiler/messages.js.map +1 -1
  25. package/build/src/compiler/meta.d.ts +2 -2
  26. package/build/src/compiler/meta.d.ts.map +1 -1
  27. package/build/src/compiler/meta.js.map +1 -1
  28. package/build/src/compiler/name.d.ts +2 -2
  29. package/build/src/compiler/name.d.ts.map +1 -1
  30. package/build/src/compiler/name.js.map +1 -1
  31. package/build/src/compiler/section-compiler.d.ts +11 -1
  32. package/build/src/compiler/section-compiler.d.ts.map +1 -1
  33. package/build/src/compiler/section-compiler.js +21 -0
  34. package/build/src/compiler/section-compiler.js.map +1 -1
  35. package/build/src/compiler/tran.d.ts +15 -22
  36. package/build/src/compiler/tran.d.ts.map +1 -1
  37. package/build/src/compiler/tran.js +111 -45
  38. package/build/src/compiler/tran.js.map +1 -1
  39. package/build/src/compiler/vars.d.ts +20 -0
  40. package/build/src/compiler/vars.d.ts.map +1 -0
  41. package/build/src/compiler/vars.js +178 -0
  42. package/build/src/compiler/vars.js.map +1 -0
  43. package/build/src/util/util.d.ts +10 -0
  44. package/build/src/util/util.d.ts.map +1 -1
  45. package/build/src/util/util.js +35 -0
  46. package/build/src/util/util.js.map +1 -1
  47. package/package.json +5 -4
  48. package/build/src/compiler/ordr.d.ts +0 -12
  49. package/build/src/compiler/ordr.d.ts.map +0 -1
  50. package/build/src/compiler/ordr.js +0 -35
  51. package/build/src/compiler/ordr.js.map +0 -1
@@ -50,6 +50,41 @@ export function allUsedKeyIdsInLayers(layersList) {
50
50
  }
51
51
  return s;
52
52
  }
53
+ /**
54
+ * Helper function for validating child elements. Written for the convenience of message passing functions.
55
+ *
56
+ * @param values array of values to check
57
+ * @param onDuplicate callback with array of duplicate values, deduped
58
+ * @param allowed optional set of valid values
59
+ * @param onInvalid callback with array of invalid values, deduped
60
+ * @returns true if all OK
61
+ */
62
+ export function verifyValidAndUnique(values, onDuplicate, allowed, onInvalid) {
63
+ const dups = [];
64
+ const invalids = [];
65
+ const seen = new Set();
66
+ for (const value of values) {
67
+ if (allowed && !allowed.has(value)) {
68
+ invalids.push(value);
69
+ }
70
+ if (seen.has(value)) {
71
+ dups.push(value);
72
+ }
73
+ else {
74
+ seen.add(value);
75
+ }
76
+ }
77
+ function dedupedSortedArray(values) {
78
+ return Array.from(new Set(values)).sort();
79
+ }
80
+ if (dups.length > 0 && onDuplicate) {
81
+ onDuplicate(dedupedSortedArray(dups));
82
+ }
83
+ if (invalids.length > 0 && onInvalid) {
84
+ onInvalid(dedupedSortedArray(invalids));
85
+ }
86
+ return (!dups.length && !invalids.length);
87
+ }
53
88
  /**
54
89
  * Determine modifier from layer info
55
90
  * @param layer layer obj
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/util/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAA6C,GAAM,EAAE,KAAa;IAChG,OAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAA2B;IAC7D,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,CAAC;KACX;IACD,oDAAoD;IACpD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,mBAAmB;IACvD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,0DAA0D;IAC1D,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACxB,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpB,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAA2C;IAC/E,MAAM,CAAC,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5B,IAAI,UAAU,EAAE;QACd,KAAK,MAAM,MAAM,IAAI,UAAU,IAAI,EAAE,EAAE;YACrC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE;gBACtC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE;oBACjC,IAAI,GAAG,CAAC,IAAI,EAAE;wBACZ,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;4BACnC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;yBACV;qBACF;iBACF;aACF;SACF;KACF;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAA2B;IACtE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3B,IAAI,QAAQ,EAAE;QACZ,IAAI,GAAG,GAAG,SAAS,CAAC,aAAa,CAAC;QAClC,KAAK,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACnC,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/C,GAAG,IAAI,MAAM,CAAC;SACf;QACD,OAAO,GAAG,CAAC;KACZ;IACD,yCAAyC;IACzC,OAAO,SAAS,CAAC,aAAa,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,QAAiB;IAC7C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC,CAAE,qCAAqC;IAClE,KAAK,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QACnC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACpC,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/util/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAA6C,GAAM,EAAE,KAAa;IAChG,OAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAA2B;IAC7D,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,CAAC;KACX;IACD,oDAAoD;IACpD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,mBAAmB;IACvD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,0DAA0D;IAC1D,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACxB,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpB,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAA2C;IAC/E,MAAM,CAAC,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5B,IAAI,UAAU,EAAE;QACd,KAAK,MAAM,MAAM,IAAI,UAAU,IAAI,EAAE,EAAE;YACrC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE;gBACtC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE;oBACjC,IAAI,GAAG,CAAC,IAAI,EAAE;wBACZ,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;4BACnC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;yBACV;qBACF;iBACF;aACF;SACF;KACF;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAgB,EAChB,WAA2C,EAC3C,OAAqB,EACrB,SAAwC;IAExC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAClC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACtB;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClB;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACjB;KACF;IAED,SAAS,kBAAkB,CAAC,MAAgB;QAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,EAAE;QAClC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;KACvC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,EAAE;QACpC,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;KACzC;IACD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAA2B;IACtE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3B,IAAI,QAAQ,EAAE;QACZ,IAAI,GAAG,GAAG,SAAS,CAAC,aAAa,CAAC;QAClC,KAAK,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACnC,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/C,GAAG,IAAI,MAAM,CAAC;SACf;QACD,OAAO,GAAG,CAAC;KACZ;IACD,yCAAyC;IACzC,OAAO,SAAS,CAAC,aAAa,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,QAAiB;IAC7C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC,CAAE,qCAAqC;IAClE,KAAK,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QACnC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACpC,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -26,8 +26,9 @@
26
26
  "url": "https://github.com/keymanapp/keyman/issues"
27
27
  },
28
28
  "dependencies": {
29
- "@keymanapp/keyman-version": "17.0.120-alpha",
30
- "@keymanapp/ldml-keyboard-constants": "17.0.120-alpha",
29
+ "@keymanapp/kmc-kmn": "17.0.122-alpha",
30
+ "@keymanapp/keyman-version": "17.0.122-alpha",
31
+ "@keymanapp/ldml-keyboard-constants": "17.0.122-alpha",
31
32
  "ajv": "^8.11.0",
32
33
  "restructure": "git+https://github.com/keymanapp/dependency-restructure.git#49d129cf0916d082a7278bb09296fb89cecfcc50",
33
34
  "semver": "^7.3.7",
@@ -45,7 +46,7 @@
45
46
  "mocha": "^8.4.0",
46
47
  "ts-node": "^9.1.1",
47
48
  "typescript": "^4.9.5",
48
- "@keymanapp/developer-test-helpers": "17.0.120-alpha"
49
+ "@keymanapp/developer-test-helpers": "17.0.122-alpha"
49
50
  },
50
51
  "mocha": {
51
52
  "spec": "build/test/**/test-*.js",
@@ -67,5 +68,5 @@
67
68
  "type": "git",
68
69
  "url": "git+https://github.com/keymanapp/keyman.git"
69
70
  },
70
- "version": "17.0.120-alpha"
71
+ "version": "17.0.122-alpha"
71
72
  }
@@ -1,12 +0,0 @@
1
- import { KMXPlus } from '@keymanapp/common-types';
2
- import { SectionCompiler } from "./section-compiler.js";
3
- import GlobalSections = KMXPlus.GlobalSections;
4
- import Ordr = KMXPlus.Ordr;
5
- export declare class OrdrCompiler extends SectionCompiler {
6
- get id(): import("@keymanapp/ldml-keyboard-constants").SectionIdent;
7
- validate(): boolean;
8
- private compileReorder;
9
- private compileReorders;
10
- compile(sections: GlobalSections): Ordr;
11
- }
12
- //# sourceMappingURL=ordr.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ordr.d.ts","sourceRoot":"","sources":["../../../src/compiler/ordr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAgB,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AAC/C,OAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAK3B,qBAAa,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE,8DAEZ;IAEM,QAAQ,IAAI,OAAO;IAO1B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,eAAe;IAYhB,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAG/C"}
@@ -1,35 +0,0 @@
1
- import { constants } from "@keymanapp/ldml-keyboard-constants";
2
- import { KMXPlus } from '@keymanapp/common-types';
3
- import { SectionCompiler } from "./section-compiler.js";
4
- var Ordr = KMXPlus.Ordr;
5
- var OrdrItem = KMXPlus.OrdrItem;
6
- export class OrdrCompiler extends SectionCompiler {
7
- get id() {
8
- return constants.section.ordr;
9
- }
10
- validate() {
11
- let valid = true;
12
- // TODO-LDML: linting here should check for identical before+from, but this involves a double-parse which is ugly
13
- // TODO-LDML: unicodesets means that either we fully parse them and verify conflicting rules or the linting is imperfect
14
- return valid;
15
- }
16
- compileReorder(sections, reorder) {
17
- let result = new OrdrItem();
18
- result.elements = sections.elem.allocElementString(sections.strs, reorder.from, reorder.order, reorder.tertiary, reorder.tertiary_base, reorder.prebase);
19
- result.before = sections.elem.allocElementString(sections.strs, reorder.before);
20
- return result;
21
- }
22
- compileReorders(sections, reorders) {
23
- let result = new Ordr();
24
- if (reorders?.reorder) {
25
- for (let reorder of reorders.reorder) {
26
- result.items.push(this.compileReorder(sections, reorder));
27
- }
28
- }
29
- return result;
30
- }
31
- compile(sections) {
32
- return this.compileReorders(sections, this.keyboard.reorders);
33
- }
34
- }
35
- //# sourceMappingURL=ordr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ordr.js","sourceRoot":"","sources":["../../../src/compiler/ordr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAgB,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,IAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAC3B,IAAO,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AAInC,MAAM,OAAO,YAAa,SAAQ,eAAe;IAE/C,IAAW,EAAE;QACX,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;IAChC,CAAC;IAEM,QAAQ;QACb,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,iHAAiH;QACjH,wHAAwH;QACxH,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,cAAc,CAAC,QAAwB,EAAE,OAAkB;QACjE,IAAI,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACzJ,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAChF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,eAAe,CAAC,QAAwB,EAAE,QAAoB;QACpE,IAAI,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAExB,IAAG,QAAQ,EAAE,OAAO,EAAE;YACpB,KAAI,IAAI,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACnC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;aAC3D;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,OAAO,CAAC,QAAwB;QACrC,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;CACF"}