@keymanapp/kmc-package 17.0.155-alpha → 17.0.157-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 (61) hide show
  1. package/build/src/compiler/cp1252.d.ts +10 -0
  2. package/build/src/compiler/cp1252.d.ts.map +1 -0
  3. package/build/src/compiler/cp1252.js +289 -0
  4. package/build/src/compiler/cp1252.js.map +1 -0
  5. package/build/src/compiler/kmp-compiler.d.ts +28 -25
  6. package/build/src/compiler/kmp-compiler.d.ts.map +1 -1
  7. package/build/src/compiler/kmp-compiler.js +333 -265
  8. package/build/src/compiler/kmp-compiler.js.map +1 -1
  9. package/build/src/compiler/kmp-inf-writer.d.ts +24 -0
  10. package/build/src/compiler/kmp-inf-writer.d.ts.map +1 -0
  11. package/build/src/compiler/kmp-inf-writer.js +145 -0
  12. package/build/src/compiler/kmp-inf-writer.js.map +1 -0
  13. package/build/src/compiler/kmx-keyboard-metadata.d.ts +6 -0
  14. package/build/src/compiler/kmx-keyboard-metadata.d.ts.map +1 -0
  15. package/build/src/compiler/kmx-keyboard-metadata.js +18 -0
  16. package/build/src/compiler/kmx-keyboard-metadata.js.map +1 -0
  17. package/build/src/compiler/messages.d.ts +114 -114
  18. package/build/src/compiler/messages.d.ts.map +1 -1
  19. package/build/src/compiler/messages.js +70 -67
  20. package/build/src/compiler/messages.js.map +1 -1
  21. package/build/src/compiler/package-keyboard-target-validator.d.ts +15 -0
  22. package/build/src/compiler/package-keyboard-target-validator.d.ts.map +1 -0
  23. package/build/src/compiler/package-keyboard-target-validator.js +36 -0
  24. package/build/src/compiler/package-keyboard-target-validator.js.map +1 -0
  25. package/build/src/compiler/package-metadata-collector.d.ts +19 -0
  26. package/build/src/compiler/package-metadata-collector.d.ts.map +1 -0
  27. package/build/src/compiler/package-metadata-collector.js +78 -0
  28. package/build/src/compiler/package-metadata-collector.js.map +1 -0
  29. package/build/src/compiler/package-metadata-updater.d.ts +7 -0
  30. package/build/src/compiler/package-metadata-updater.d.ts.map +1 -0
  31. package/build/src/compiler/package-metadata-updater.js +13 -0
  32. package/build/src/compiler/package-metadata-updater.js.map +1 -0
  33. package/build/src/compiler/package-validation.d.ts +18 -15
  34. package/build/src/compiler/package-validation.d.ts.map +1 -1
  35. package/build/src/compiler/package-validation.js +162 -152
  36. package/build/src/compiler/package-validation.js.map +1 -1
  37. package/build/src/compiler/package-version-validator.d.ts +23 -0
  38. package/build/src/compiler/package-version-validator.d.ts.map +1 -0
  39. package/build/src/compiler/package-version-validator.js +92 -0
  40. package/build/src/compiler/package-version-validator.js.map +1 -0
  41. package/build/src/compiler/redist-files.d.ts +20 -18
  42. package/build/src/compiler/redist-files.d.ts.map +1 -1
  43. package/build/src/compiler/redist-files.js +59 -57
  44. package/build/src/compiler/redist-files.js.map +1 -1
  45. package/build/src/compiler/web-keyboard-metadata.d.ts +22 -0
  46. package/build/src/compiler/web-keyboard-metadata.d.ts.map +1 -0
  47. package/build/src/compiler/web-keyboard-metadata.js +34 -0
  48. package/build/src/compiler/web-keyboard-metadata.js.map +1 -0
  49. package/build/src/main.d.ts +5 -3
  50. package/build/src/main.d.ts.map +1 -1
  51. package/build/src/main.js +5 -3
  52. package/build/src/main.js.map +1 -1
  53. package/package.json +7 -8
  54. package/build/src/compiler/keyman-targets.d.ts +0 -18
  55. package/build/src/compiler/keyman-targets.d.ts.map +0 -1
  56. package/build/src/compiler/keyman-targets.js +0 -53
  57. package/build/src/compiler/keyman-targets.js.map +0 -1
  58. package/build/src/compiler/package-version-validation.d.ts +0 -24
  59. package/build/src/compiler/package-version-validation.d.ts.map +0 -1
  60. package/build/src/compiler/package-version-validation.js +0 -153
  61. package/build/src/compiler/package-version-validation.js.map +0 -1
@@ -1,152 +1,162 @@
1
- import { CompilerMessages } from './messages.js';
2
- import { keymanEngineForWindowsFiles, keymanForWindowsInstallerFiles, keymanForWindowsRedistFiles } from './redist-files.js';
3
- // const SLexicalModelExtension = '.model.js';
4
- // The keyboard ID SHOULD adhere to this pattern:
5
- const KEYBOARD_ID_PATTERN_PACKAGE = /^[a-z_][a-z0-9_]*\.(kps|kmp)$/;
6
- // The model ID SHOULD adhere to this pattern:
7
- // author .bcp47 .uniq
8
- const MODEL_ID_PATTERN_PACKAGE = /^[a-z_][a-z0-9_]*\.[a-z_][a-z0-9_-]*\.[a-z_][a-z0-9_]*\.model\.(kps|kmp)$/;
9
- // const MODEL_ID_PATTERN_JS = /^[a-z_][a-z0-9_]*\.[a-z_][a-z0-9_-]*\.[a-z_][a-z0-9_]*\.model\.js$/;
10
- // const MODEL_ID_PATTERN_TS = /^[a-z_][a-z0-9_]*\.[a-z_][a-z0-9_-]*\.[a-z_][a-z0-9_]*\.model\.ts$/;
11
- // const MODEL_ID_PATTERN_PROJECT = /^[a-z_][a-z0-9_]*\.[a-z_][a-z0-9_-]*\.[a-z_][a-z0-9_]*\.model\.kpj$/;
12
- // "Content files" within the package should adhere to these pattern:
13
- const CONTENT_FILE_BASENAME_PATTERN = /^[a-z0-9_+.-]+$/;
14
- const CONTENT_FILE_EXTENSION_PATTERN = /^\.[a-z0-9_]+$/;
15
- export class PackageValidation {
16
- callbacks;
17
- constructor(callbacks) {
18
- this.callbacks = callbacks;
19
- }
20
- validate(filename, kmpJson) {
21
- if (!this.checkForModelsAndKeyboardsInSamePackage(kmpJson)) {
22
- return false;
23
- }
24
- if (!this.checkKeyboards(filename, kmpJson)) {
25
- return false;
26
- }
27
- if (!this.checkLexicalModels(filename, kmpJson)) {
28
- return false;
29
- }
30
- if (!this.checkContentFiles(kmpJson)) {
31
- return false;
32
- }
33
- if (!this.checkPackageInfo(kmpJson)) {
34
- return false;
35
- }
36
- return true;
37
- }
38
- checkForDuplicatedOrNonMinimalLanguages(resourceType, id, languages) {
39
- let minimalTags = {};
40
- if (languages.length == 0) {
41
- this.callbacks.reportMessage(CompilerMessages.Error_MustHaveAtLeastOneLanguage({ resourceType, id }));
42
- return false;
43
- }
44
- for (let lang of languages) {
45
- let locale;
46
- try {
47
- locale = new Intl.Locale(lang.id);
48
- }
49
- catch (e) {
50
- this.callbacks.reportMessage(CompilerMessages.Error_LanguageTagIsNotValid({ resourceType, id, lang: lang.id, e }));
51
- return false;
52
- }
53
- const minimalTag = locale.minimize().toString();
54
- if (minimalTag.toLowerCase() !== lang.id.toLowerCase()) {
55
- this.callbacks.reportMessage(CompilerMessages.Warn_LanguageTagIsNotMinimal({ resourceType, id, actual: lang.id, expected: minimalTag }));
56
- }
57
- if (minimalTags[minimalTag]) {
58
- this.callbacks.reportMessage(CompilerMessages.Warn_PackageShouldNotRepeatLanguages({ resourceType, id, minimalTag, firstTag: lang.id, secondTag: minimalTags[minimalTag] }));
59
- }
60
- else {
61
- minimalTags[minimalTag] = lang.id;
62
- }
63
- }
64
- return true;
65
- }
66
- checkForModelsAndKeyboardsInSamePackage(kmpJson) {
67
- if (kmpJson.lexicalModels?.length > 0 && kmpJson.keyboards?.length > 0) {
68
- this.callbacks.reportMessage(CompilerMessages.Error_PackageCannotContainBothModelsAndKeyboards());
69
- return false;
70
- }
71
- if (!kmpJson.lexicalModels?.length && !kmpJson.keyboards?.length) {
72
- // Note: we require at least 1 keyboard or model in the package. This may
73
- // change in the future if we start to use packages to distribute, e.g.
74
- // localizations or themes.
75
- this.callbacks.reportMessage(CompilerMessages.Error_PackageMustContainAModelOrAKeyboard());
76
- return false;
77
- }
78
- return true;
79
- }
80
- checkLexicalModels(filename, kmpJson) {
81
- if (!kmpJson.lexicalModels || kmpJson.lexicalModels.length == 0) {
82
- return true;
83
- }
84
- filename = this.callbacks.path.basename(filename);
85
- if (!MODEL_ID_PATTERN_PACKAGE.test(filename)) {
86
- this.callbacks.reportMessage(CompilerMessages.Warn_PackageNameDoesNotFollowLexicalModelConventions({ filename }));
87
- }
88
- for (let model of kmpJson.lexicalModels) {
89
- if (!this.checkForDuplicatedOrNonMinimalLanguages('model', model.id, model.languages)) {
90
- return false;
91
- }
92
- }
93
- return true;
94
- }
95
- checkKeyboards(filename, kmpJson) {
96
- if (!kmpJson.keyboards || kmpJson.keyboards.length == 0) {
97
- return true;
98
- }
99
- filename = this.callbacks.path.basename(filename);
100
- if (!KEYBOARD_ID_PATTERN_PACKAGE.test(filename)) {
101
- this.callbacks.reportMessage(CompilerMessages.Warn_PackageNameDoesNotFollowKeyboardConventions({ filename }));
102
- }
103
- for (let keyboard of kmpJson.keyboards) {
104
- if (!this.checkForDuplicatedOrNonMinimalLanguages('keyboard', keyboard.id, keyboard.languages)) {
105
- return false;
106
- }
107
- // Note: package-version-validation verifies that there is a corresponding
108
- // content file for each keyboard
109
- }
110
- return true;
111
- }
112
- checkContentFiles(kmpJson) {
113
- for (let file of kmpJson.files) {
114
- if (!this.checkContentFile(file)) {
115
- return false;
116
- }
117
- }
118
- return true;
119
- }
120
- checkContentFile(file) {
121
- const filename = this.callbacks.path.basename(file.name);
122
- const ext = this.callbacks.path.extname(filename);
123
- const base = filename.substring(0, filename.length - ext.length);
124
- if (!CONTENT_FILE_BASENAME_PATTERN.test(base) || !CONTENT_FILE_EXTENSION_PATTERN.test(ext)) {
125
- this.callbacks.reportMessage(CompilerMessages.Warn_FileInPackageDoesNotFollowFilenameConventions({ filename }));
126
- }
127
- if (!this.checkIfContentFileIsDangerous(file)) {
128
- return false;
129
- }
130
- return true;
131
- }
132
- checkIfContentFileIsDangerous(file) {
133
- let filename = this.callbacks.path.basename(file.name).toLowerCase();
134
- if (keymanForWindowsInstallerFiles.includes(filename) ||
135
- keymanForWindowsRedistFiles.includes(filename) ||
136
- keymanEngineForWindowsFiles.includes(filename)) {
137
- this.callbacks.reportMessage(CompilerMessages.Warn_RedistFileShouldNotBeInPackage({ filename }));
138
- }
139
- if (filename.match(/\.doc(x?)$/)) {
140
- this.callbacks.reportMessage(CompilerMessages.Warn_DocFileDangerous({ filename }));
141
- }
142
- return true;
143
- }
144
- checkPackageInfo(file) {
145
- if (!file.info || !file.info.name || !file.info.name.description.trim()) {
146
- this.callbacks.reportMessage(CompilerMessages.Error_PackageNameCannotBeBlank());
147
- return false;
148
- }
149
- return true;
150
- }
151
- }
152
- //# sourceMappingURL=package-validation.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]="4f95a823-aca1-56c4-8e1f-c4bfb07e1501")}catch(e){}}();
2
+ import { CompilerMessages } from './messages.js';
3
+ import { keymanEngineForWindowsFiles, keymanForWindowsInstallerFiles, keymanForWindowsRedistFiles } from './redist-files.js';
4
+ // The keyboard ID SHOULD adhere to this pattern:
5
+ const KEYBOARD_ID_PATTERN_PACKAGE = /^[a-z_][a-z0-9_]*\.(kps|kmp)$/;
6
+ // The model ID SHOULD adhere to this pattern:
7
+ // author .bcp47 .uniq
8
+ const MODEL_ID_PATTERN_PACKAGE = /^[a-z_][a-z0-9_]*\.[a-z_][a-z0-9_-]*\.[a-z_][a-z0-9_]*\.model\.(kps|kmp)$/;
9
+ // const MODEL_ID_PATTERN_JS = /^[a-z_][a-z0-9_]*\.[a-z_][a-z0-9_-]*\.[a-z_][a-z0-9_]*\.model\.js$/;
10
+ // const MODEL_ID_PATTERN_TS = /^[a-z_][a-z0-9_]*\.[a-z_][a-z0-9_-]*\.[a-z_][a-z0-9_]*\.model\.ts$/;
11
+ // const MODEL_ID_PATTERN_PROJECT = /^[a-z_][a-z0-9_]*\.[a-z_][a-z0-9_-]*\.[a-z_][a-z0-9_]*\.model\.kpj$/;
12
+ // "Content files" within the package should adhere to these pattern:
13
+ const CONTENT_FILE_BASENAME_PATTERN = /^[a-z0-9_+.-]+$/i; // base names can be case insensitive
14
+ const CONTENT_FILE_EXTENSION_PATTERN = /^(\.[a-z0-9_-]+)?$/; // extensions should be lower-case or empty
15
+ export class PackageValidation {
16
+ callbacks;
17
+ options;
18
+ constructor(callbacks, options) {
19
+ this.callbacks = callbacks;
20
+ this.options = options;
21
+ }
22
+ validate(filename, kmpJson) {
23
+ if (!this.checkForModelsAndKeyboardsInSamePackage(kmpJson)) {
24
+ return false;
25
+ }
26
+ if (!this.checkKeyboards(filename, kmpJson)) {
27
+ return false;
28
+ }
29
+ if (!this.checkLexicalModels(filename, kmpJson)) {
30
+ return false;
31
+ }
32
+ if (!this.checkContentFiles(kmpJson)) {
33
+ return false;
34
+ }
35
+ if (!this.checkPackageInfo(kmpJson)) {
36
+ return false;
37
+ }
38
+ return true;
39
+ }
40
+ checkForDuplicatedOrNonMinimalLanguages(resourceType, id, languages) {
41
+ let minimalTags = {};
42
+ if (languages.length == 0) {
43
+ if (resourceType == 'keyboard') {
44
+ this.callbacks.reportMessage(CompilerMessages.Warn_KeyboardShouldHaveAtLeastOneLanguage({ id }));
45
+ }
46
+ else {
47
+ this.callbacks.reportMessage(CompilerMessages.Error_ModelMustHaveAtLeastOneLanguage({ id }));
48
+ return false;
49
+ }
50
+ }
51
+ for (let lang of languages) {
52
+ let locale;
53
+ try {
54
+ locale = new Intl.Locale(lang.id);
55
+ }
56
+ catch (e) {
57
+ this.callbacks.reportMessage(CompilerMessages.Error_LanguageTagIsNotValid({ resourceType, id, lang: lang.id, e }));
58
+ return false;
59
+ }
60
+ const minimalTag = locale.minimize().toString();
61
+ if (minimalTag.toLowerCase() !== lang.id.toLowerCase()) {
62
+ this.callbacks.reportMessage(CompilerMessages.Warn_LanguageTagIsNotMinimal({ resourceType, id, actual: lang.id, expected: minimalTag }));
63
+ }
64
+ if (minimalTags[minimalTag]) {
65
+ this.callbacks.reportMessage(CompilerMessages.Warn_PackageShouldNotRepeatLanguages({ resourceType, id, minimalTag, firstTag: lang.id, secondTag: minimalTags[minimalTag] }));
66
+ }
67
+ else {
68
+ minimalTags[minimalTag] = lang.id;
69
+ }
70
+ }
71
+ return true;
72
+ }
73
+ checkForModelsAndKeyboardsInSamePackage(kmpJson) {
74
+ if (kmpJson.lexicalModels?.length > 0 && kmpJson.keyboards?.length > 0) {
75
+ this.callbacks.reportMessage(CompilerMessages.Error_PackageCannotContainBothModelsAndKeyboards());
76
+ return false;
77
+ }
78
+ if (!kmpJson.lexicalModels?.length && !kmpJson.keyboards?.length) {
79
+ // Note: we require at least 1 keyboard or model in the package. This may
80
+ // change in the future if we start to use packages to distribute, e.g.
81
+ // localizations or themes.
82
+ this.callbacks.reportMessage(CompilerMessages.Error_PackageMustContainAModelOrAKeyboard());
83
+ return false;
84
+ }
85
+ return true;
86
+ }
87
+ checkLexicalModels(filename, kmpJson) {
88
+ if (!kmpJson.lexicalModels || kmpJson.lexicalModels.length == 0) {
89
+ return true;
90
+ }
91
+ filename = this.callbacks.path.basename(filename);
92
+ if (!MODEL_ID_PATTERN_PACKAGE.test(filename)) {
93
+ this.callbacks.reportMessage(CompilerMessages.Warn_PackageNameDoesNotFollowLexicalModelConventions({ filename }));
94
+ }
95
+ for (let model of kmpJson.lexicalModels) {
96
+ if (!this.checkForDuplicatedOrNonMinimalLanguages('model', model.id, model.languages)) {
97
+ return false;
98
+ }
99
+ }
100
+ return true;
101
+ }
102
+ checkKeyboards(filename, kmpJson) {
103
+ if (!kmpJson.keyboards || kmpJson.keyboards.length == 0) {
104
+ return true;
105
+ }
106
+ filename = this.callbacks.path.basename(filename);
107
+ if (!KEYBOARD_ID_PATTERN_PACKAGE.test(filename)) {
108
+ this.callbacks.reportMessage(CompilerMessages.Warn_PackageNameDoesNotFollowKeyboardConventions({ filename }));
109
+ }
110
+ for (let keyboard of kmpJson.keyboards) {
111
+ if (!this.checkForDuplicatedOrNonMinimalLanguages('keyboard', keyboard.id, keyboard.languages)) {
112
+ return false;
113
+ }
114
+ // Note: package-version-validation verifies that there is a corresponding
115
+ // content file for each keyboard
116
+ }
117
+ return true;
118
+ }
119
+ checkContentFiles(kmpJson) {
120
+ for (let file of kmpJson.files) {
121
+ if (!this.checkContentFile(file)) {
122
+ return false;
123
+ }
124
+ }
125
+ return true;
126
+ }
127
+ checkContentFile(file) {
128
+ const filename = this.callbacks.path.basename(file.name);
129
+ const ext = this.callbacks.path.extname(filename);
130
+ const base = filename.substring(0, filename.length - ext.length);
131
+ if (this.options.checkFilenameConventions) {
132
+ if (!CONTENT_FILE_BASENAME_PATTERN.test(base) || !CONTENT_FILE_EXTENSION_PATTERN.test(ext)) {
133
+ this.callbacks.reportMessage(CompilerMessages.Warn_FileInPackageDoesNotFollowFilenameConventions({ filename }));
134
+ }
135
+ }
136
+ if (!this.checkIfContentFileIsDangerous(file)) {
137
+ return false;
138
+ }
139
+ return true;
140
+ }
141
+ checkIfContentFileIsDangerous(file) {
142
+ let filename = this.callbacks.path.basename(file.name).toLowerCase();
143
+ if (keymanForWindowsInstallerFiles.includes(filename) ||
144
+ keymanForWindowsRedistFiles.includes(filename) ||
145
+ keymanEngineForWindowsFiles.includes(filename)) {
146
+ this.callbacks.reportMessage(CompilerMessages.Warn_RedistFileShouldNotBeInPackage({ filename }));
147
+ }
148
+ if (filename.match(/\.doc(x?)$/)) {
149
+ this.callbacks.reportMessage(CompilerMessages.Warn_DocFileDangerous({ filename }));
150
+ }
151
+ return true;
152
+ }
153
+ checkPackageInfo(file) {
154
+ if (!file.info || !file.info.name || !file.info.name.description.trim()) {
155
+ this.callbacks.reportMessage(CompilerMessages.Error_PackageNameCannotBeBlank());
156
+ return false;
157
+ }
158
+ return true;
159
+ }
160
+ }
161
+ //# debugId=4f95a823-aca1-56c4-8e1f-c4bfb07e1501
162
+ //# sourceMappingURL=package-validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-validation.js","sourceRoot":"","sources":["../../../src/compiler/package-validation.ts"],"names":[],"mappings":"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"}
1
+ {"debug_id":"4f95a823-aca1-56c4-8e1f-c4bfb07e1501","file":"package-validation.js","mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAE7H,iDAAiD;AACjD,MAAM,2BAA2B,GAAG,+BAA+B,CAAC;AAEpE,8CAA8C;AAC9C,4EAA4E;AAC5E,MAAM,wBAAwB,GAAG,2EAA2E,CAAC;AAC7G,yGAAyG;AACzG,yGAAyG;AACzG,0GAA0G;AAE1G,qEAAqE;AACrE,MAAM,6BAA6B,GAAG,kBAAkB,CAAC,CAAC,qCAAqC;AAC/F,MAAM,8BAA8B,GAAG,oBAAoB,CAAC,CAAE,2CAA2C;AAEzG,MAAM,OAAO,iBAAiB;IAER;IAAsC;IAA1D,YAAoB,SAA4B,EAAU,OAAwB;QAA9D,cAAS,GAAT,SAAS,CAAmB;QAAU,YAAO,GAAP,OAAO,CAAiB;IAClF,CAAC;IAEM,QAAQ,CAAC,QAAgB,EAAE,OAAgC;QAChE,IAAG,CAAC,IAAI,CAAC,uCAAuC,CAAC,OAAO,CAAC,EAAE;YACzD,OAAO,KAAK,CAAC;SACd;QACD,IAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;YAC1C,OAAO,KAAK,CAAC;SACd;QACD,IAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;YAC9C,OAAO,KAAK,CAAC;SACd;QACD,IAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;YACnC,OAAO,KAAK,CAAC;SACd;QACD,IAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;YAClC,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,uCAAuC,CAAC,YAAgC,EAAE,EAAU,EAAE,SAA4C;QACxI,IAAI,WAAW,GAA4B,EAAE,CAAC;QAE9C,IAAG,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YACxB,IAAG,YAAY,IAAI,UAAU,EAAE;gBAC7B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,yCAAyC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,CAAC;aAChG;iBAAM;gBACL,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,qCAAqC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,CAAC;gBAC3F,OAAO,KAAK,CAAC;aACd;SACF;QAED,KAAI,IAAI,IAAI,IAAI,SAAS,EAAE;YACzB,IAAI,MAAM,CAAC;YACX,IAAI;gBACF,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACnC;YAAC,OAAM,CAAM,EAAE;gBACd,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,EAAC,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC;gBACjH,OAAO,KAAK,CAAC;aACd;YAED,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;YAEhD,IAAG,UAAU,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE;gBACrD,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,EAAC,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAC,CAAC,CAAC,CAAC;aACxI;YAED,IAAG,WAAW,CAAC,UAAU,CAAC,EAAE;gBAC1B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,oCAAoC,CAAC,EAAC,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC,EAAC,CAAC,CAAC,CAAC;aAC5K;iBACI;gBACH,WAAW,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;aACnC;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,uCAAuC,CAAC,OAAgC;QAC9E,IAAG,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE;YACrE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,gDAAgD,EAAE,CAAC,CAAC;YAClG,OAAO,KAAK,CAAC;SACd;QAED,IAAG,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE;YAC/D,yEAAyE;YACzE,uEAAuE;YACvE,2BAA2B;YAC3B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,yCAAyC,EAAE,CAAC,CAAC;YAC3F,OAAO,KAAK,CAAC;SACd;QAID,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,kBAAkB,CAAC,QAAgB,EAAE,OAAgC;QAC3E,IAAG,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAC9D,OAAO,IAAI,CAAC;SACb;QAED,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAElD,IAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC3C,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,oDAAoD,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC;SACjH;QAED,KAAI,IAAI,KAAK,IAAI,OAAO,CAAC,aAAa,EAAE;YACtC,IAAG,CAAC,IAAI,CAAC,uCAAuC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE;gBACpF,OAAO,KAAK,CAAC;aACd;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,cAAc,CAAC,QAAgB,EAAE,OAAgC;QACvE,IAAG,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YACtD,OAAO,IAAI,CAAC;SACb;QAED,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAElD,IAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC9C,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,gDAAgD,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC;SAC7G;QAED,KAAI,IAAI,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE;YACrC,IAAG,CAAC,IAAI,CAAC,uCAAuC,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAC7F,OAAO,KAAK,CAAC;aACd;YACD,0EAA0E;YAC1E,iCAAiC;SAClC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,iBAAiB,CAAC,OAAgC;QACxD,KAAI,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;YAC7B,IAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBAC/B,OAAO,KAAK,CAAC;aACd;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,gBAAgB,CAAC,IAAwC;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE;YACxC,IAAG,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACzF,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,kDAAkD,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC;aAC/G;SACF;QAED,IAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,EAAE;YAC5C,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,6BAA6B,CAAC,IAAwC;QAC5E,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACrE,IAAG,8BAA8B,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAChD,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC9C,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAClD,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,mCAAmC,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC;SAChG;QACD,IAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;YAC/B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC;SAClF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,gBAAgB,CAAC,IAA6B;QACpD,IAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE;YACtE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,8BAA8B,EAAE,CAAC,CAAC;YAChF,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF","names":[],"sourceRoot":"","sources":["../../../src/compiler/package-validation.ts"],"version":3}
@@ -0,0 +1,23 @@
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]="65d6e726-8f15-5b09-b17f-4fb6d7d6215a")}catch(e){}}();
2
+ import { KmpJsonFile, CompilerCallbacks, KpsFile } from '@keymanapp/common-types';
3
+ import { KeyboardMetadataCollection } from './package-metadata-collector.js';
4
+ export declare const DEFAULT_KEYBOARD_VERSION = "1.0";
5
+ export declare const MIN_LM_FILEVERSION_KMP_JSON = "12.0";
6
+ export declare const MIN_KBD_FILEVERSION_KMP_JSON = "7.0";
7
+ export declare class PackageVersionValidator {
8
+ private callbacks;
9
+ constructor(callbacks: CompilerCallbacks);
10
+ getMinKeymanVersion(keyboardMetadata: KeyboardMetadataCollection): string;
11
+ /**
12
+ * Verifies version information in corresponding keyboards and updates kmpJson
13
+ * metadata as the version information can be out of sync in the .kps file
14
+ * after updating a contained keyboard.
15
+ * @param kps
16
+ * @param kmp
17
+ * @returns
18
+ */
19
+ validateAndUpdateVersions(kps: KpsFile.KpsFile, kmp: KmpJsonFile.KmpJsonFile, keyboardMetadata: KeyboardMetadataCollection): boolean;
20
+ private checkFollowKeyboardVersion;
21
+ }
22
+ //# debugId=65d6e726-8f15-5b09-b17f-4fb6d7d6215a
23
+ //# sourceMappingURL=package-version-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"debug_id":"65d6e726-8f15-5b09-b17f-4fb6d7d6215a","file":"package-version-validator.d.ts","mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElF,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,2BAA2B,SAAS,CAAC;AAClD,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAElD,qBAAa,uBAAuB;IAEtB,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,iBAAiB;IAEzC,mBAAmB,CAAC,gBAAgB,EAAE,0BAA0B,GAAG,MAAM;IAgBhF;;;;;;;OAOG;IACI,yBAAyB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC,WAAW,EAAE,gBAAgB,EAAE,0BAA0B;IAsDjI,OAAO,CAAC,0BAA0B;CAcnC","names":[],"sourceRoot":"","sources":["../../../src/compiler/package-version-validator.ts"],"version":3}
@@ -0,0 +1,92 @@
1
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="040246b6-1a2a-52a8-9c65-f26bd3f21e8d")}catch(e){}}();
2
+ import { CompilerMessages } from './messages.js';
3
+ export const DEFAULT_KEYBOARD_VERSION = '1.0';
4
+ export const MIN_LM_FILEVERSION_KMP_JSON = '12.0';
5
+ export const MIN_KBD_FILEVERSION_KMP_JSON = '7.0';
6
+ export class PackageVersionValidator {
7
+ callbacks;
8
+ constructor(callbacks) {
9
+ this.callbacks = callbacks;
10
+ }
11
+ getMinKeymanVersion(keyboardMetadata) {
12
+ let minKeymanVersion = MIN_KBD_FILEVERSION_KMP_JSON;
13
+ for (let id of Object.keys(keyboardMetadata)) {
14
+ // minKeymanVersion is always a float so float comparison is safe
15
+ let kbdMinKeymanVersion = parseFloat(keyboardMetadata[id].data.minKeymanVersion);
16
+ if (kbdMinKeymanVersion > 14.0) {
17
+ // Keyman for Windows 14 and earlier only accepted version 7.0 for keyboard
18
+ // packages, so we must not write any other version in order to allow
19
+ // earlier versions of Keyman to load the package.
20
+ if (parseFloat(minKeymanVersion) < kbdMinKeymanVersion) {
21
+ minKeymanVersion = keyboardMetadata[id].data.minKeymanVersion;
22
+ }
23
+ }
24
+ }
25
+ return minKeymanVersion;
26
+ }
27
+ /**
28
+ * Verifies version information in corresponding keyboards and updates kmpJson
29
+ * metadata as the version information can be out of sync in the .kps file
30
+ * after updating a contained keyboard.
31
+ * @param kps
32
+ * @param kmp
33
+ * @returns
34
+ */
35
+ validateAndUpdateVersions(kps, kmp, keyboardMetadata) {
36
+ const followKeyboardVersion = kps.options?.followKeyboardVersion !== undefined;
37
+ if (followKeyboardVersion) {
38
+ if (!this.checkFollowKeyboardVersion(kmp)) {
39
+ return false;
40
+ }
41
+ }
42
+ if (!kmp.keyboards) {
43
+ // Lexical models don't have version metadata; only their packages.
44
+ return true;
45
+ }
46
+ let result = true;
47
+ // We now know we have at least one keyboard in the package
48
+ for (let keyboard of kmp.keyboards) {
49
+ const data = keyboardMetadata[keyboard.id];
50
+ if (!data) {
51
+ // Warnings or errors will have been raised by getKeyboardFileData
52
+ // TODO raise error -- we should not have gotten here
53
+ return false;
54
+ }
55
+ // Note: there is often version metadata in the .kps <Keyboard> element, but
56
+ // we don't read from the metadata because we want to ensure we have the
57
+ // most up-to-date keyboard version data here, from the compiled keyboard.
58
+ if (followKeyboardVersion && data.data.keyboardVersion === null) {
59
+ this.callbacks.reportMessage(CompilerMessages.Info_KeyboardFileHasNoKeyboardVersion({ filename: keyboard.id }));
60
+ }
61
+ keyboard.version = data.data.keyboardVersion ?? DEFAULT_KEYBOARD_VERSION;
62
+ if (result && followKeyboardVersion) {
63
+ if (kmp.keyboards[0].version !== keyboard.version) {
64
+ this.callbacks.reportMessage(CompilerMessages.Warn_KeyboardVersionsDoNotMatch({
65
+ keyboard: keyboard.id,
66
+ version: keyboard.version,
67
+ firstKeyboard: kmp.keyboards[0].id,
68
+ firstVersion: kmp.keyboards[0].version
69
+ }));
70
+ }
71
+ }
72
+ }
73
+ if (result && followKeyboardVersion) {
74
+ kmp.info.version = { description: kmp.keyboards[0].version };
75
+ }
76
+ return result;
77
+ }
78
+ checkFollowKeyboardVersion(kmp) {
79
+ // Lexical model packages do not allow FollowKeyboardVersion
80
+ if (kmp.lexicalModels && kmp.lexicalModels.length) {
81
+ this.callbacks.reportMessage(CompilerMessages.Error_FollowKeyboardVersionNotAllowedForModelPackages());
82
+ return false;
83
+ }
84
+ if (!kmp.keyboards || !kmp.keyboards.length) {
85
+ this.callbacks.reportMessage(CompilerMessages.Error_FollowKeyboardVersionButNoKeyboards());
86
+ return false;
87
+ }
88
+ return true;
89
+ }
90
+ }
91
+ //# debugId=040246b6-1a2a-52a8-9c65-f26bd3f21e8d
92
+ //# sourceMappingURL=package-version-validator.js.map
@@ -0,0 +1 @@
1
+ {"debug_id":"040246b6-1a2a-52a8-9c65-f26bd3f21e8d","file":"package-version-validator.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../../src/compiler/package-version-validator.ts"],"version":3}
@@ -1,18 +1,20 @@
1
- /**
2
- * This is a set of known redistributable files for Keyman for Windows that
3
- * should not be included in packages. It is not critical that this list matches
4
- * the current deployment; it is just for warning against accidental inclusion
5
- * of these files by package authors. Some redistributable files have been
6
- * intentionally excluded because they could legitimately be a different file
7
- * with the same name.
8
- *
9
- * This matches behaviour from the legacy package compiler; we may want to
10
- * reconsider how this is done in the future.
11
- *
12
- * These lists have been constructed from 17.0.109 alpha build. Filenames
13
- * intentionally in lower case.
14
- */
15
- export declare const keymanForWindowsInstallerFiles: string[];
16
- export declare const keymanEngineForWindowsFiles: string[];
17
- export declare const keymanForWindowsRedistFiles: string[];
18
- //# sourceMappingURL=redist-files.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]="a5bea4cf-412d-5ae5-a204-a81d0574c1ea")}catch(e){}}();
2
+ /**
3
+ * This is a set of known redistributable files for Keyman for Windows that
4
+ * should not be included in packages. It is not critical that this list matches
5
+ * the current deployment; it is just for warning against accidental inclusion
6
+ * of these files by package authors. Some redistributable files have been
7
+ * intentionally excluded because they could legitimately be a different file
8
+ * with the same name.
9
+ *
10
+ * This matches behaviour from the legacy package compiler; we may want to
11
+ * reconsider how this is done in the future.
12
+ *
13
+ * These lists have been constructed from 17.0.109 alpha build. Filenames
14
+ * intentionally in lower case.
15
+ */
16
+ export declare const keymanForWindowsInstallerFiles: string[];
17
+ export declare const keymanEngineForWindowsFiles: string[];
18
+ export declare const keymanForWindowsRedistFiles: string[];
19
+ //# debugId=a5bea4cf-412d-5ae5-a204-a81d0574c1ea
20
+ //# sourceMappingURL=redist-files.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"redist-files.d.ts","sourceRoot":"","sources":["../../../src/compiler/redist-files.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MACL,8BAA8B,EAAE,MAAM,EAGrC,CAAC;AAGJ,eAAO,MACL,2BAA2B,EAAE,MAAM,EA6BlC,CAAC;AAEJ,eAAO,MACL,2BAA2B,EAAE,MAAM,EAOlC,CAAC"}
1
+ {"debug_id":"a5bea4cf-412d-5ae5-a204-a81d0574c1ea","file":"redist-files.d.ts","mappings":";AACA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MACL,8BAA8B,EAAE,MAAM,EAGrC,CAAC;AAGJ,eAAO,MACL,2BAA2B,EAAE,MAAM,EA6BlC,CAAC;AAEJ,eAAO,MACL,2BAA2B,EAAE,MAAM,EAOlC,CAAC","names":[],"sourceRoot":"","sources":["../../../src/compiler/redist-files.ts"],"version":3}