@keymanapp/kmc-package 17.0.107-alpha → 17.0.108-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.
- package/build/src/compiler/kmp-compiler.d.ts +0 -1
- package/build/src/compiler/kmp-compiler.d.ts.map +1 -1
- package/build/src/compiler/kmp-compiler.js +22 -72
- package/build/src/compiler/kmp-compiler.js.map +1 -1
- package/build/src/compiler/messages.d.ts +55 -7
- package/build/src/compiler/messages.d.ts.map +1 -1
- package/build/src/compiler/messages.js +26 -8
- package/build/src/compiler/messages.js.map +1 -1
- package/build/src/compiler/package-validation.d.ts +2 -1
- package/build/src/compiler/package-validation.d.ts.map +1 -1
- package/build/src/compiler/package-validation.js +51 -8
- package/build/src/compiler/package-validation.js.map +1 -1
- package/build/src/compiler/package-version-validation.d.ts +18 -0
- package/build/src/compiler/package-version-validation.d.ts.map +1 -0
- package/build/src/compiler/package-version-validation.js +119 -0
- package/build/src/compiler/package-version-validation.js.map +1 -0
- package/build/src/compiler/redist-files.d.ts +18 -0
- package/build/src/compiler/redist-files.d.ts.map +1 -0
- package/build/src/compiler/redist-files.js +57 -0
- package/build/src/compiler/redist-files.js.map +1 -0
- package/package.json +3 -3
|
@@ -7,7 +7,6 @@ export declare class KmpCompiler {
|
|
|
7
7
|
private kpsInfoToKmpInfo;
|
|
8
8
|
private arrayWrap;
|
|
9
9
|
private kpsLanguagesToKmpLanguages;
|
|
10
|
-
private extractKeyboardVersionFromKmx;
|
|
11
10
|
private stripUndefined;
|
|
12
11
|
/**
|
|
13
12
|
* Returns a Promise to the serialized data which can then be written to a .kmp file.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kmp-compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/kmp-compiler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAW,MAAM,yBAAyB,CAAC;AAErE,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"kmp-compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/kmp-compiler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAW,MAAM,yBAAyB,CAAC;AAErE,OAAO,EAAE,WAAW,EAAW,MAAM,yBAAyB,CAAC;AAK/D,qBAAa,WAAW;IAEV,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,iBAAiB;IAGzC,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAAC,WAAW;IAwJ5E,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,0BAA0B;IAMlC,OAAO,CAAC,cAAc;IAWtB;;;;;OAKG;IACI,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IA8D/F;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;CAMjC"}
|
|
@@ -3,7 +3,7 @@ import JSZip from 'jszip';
|
|
|
3
3
|
import KEYMAN_VERSION from "@keymanapp/keyman-version";
|
|
4
4
|
import { KvkFile } from '@keymanapp/common-types';
|
|
5
5
|
import { CompilerMessages } from './messages.js';
|
|
6
|
-
import {
|
|
6
|
+
import { PackageVersionValidation } from './package-version-validation.js';
|
|
7
7
|
const FILEVERSION_KMP_JSON = '12.0';
|
|
8
8
|
export class KmpCompiler {
|
|
9
9
|
callbacks;
|
|
@@ -87,33 +87,35 @@ export class KmpCompiler {
|
|
|
87
87
|
// Add keyboard metadata
|
|
88
88
|
//
|
|
89
89
|
if (kps.keyboards && kps.keyboards.keyboard) {
|
|
90
|
-
kmp.keyboards = this.arrayWrap(kps.keyboards.keyboard).map((keyboard) => {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
});
|
|
90
|
+
kmp.keyboards = this.arrayWrap(kps.keyboards.keyboard).map((keyboard) => ({
|
|
91
|
+
displayFont: keyboard.displayFont ? this.callbacks.path.basename(keyboard.displayFont) : undefined,
|
|
92
|
+
oskFont: keyboard.oSKFont ? this.callbacks.path.basename(keyboard.oSKFont) : undefined,
|
|
93
|
+
name: keyboard.name,
|
|
94
|
+
id: keyboard.iD,
|
|
95
|
+
version: keyboard.version,
|
|
96
|
+
languages: keyboard.languages ?
|
|
97
|
+
this.kpsLanguagesToKmpLanguages(this.arrayWrap(keyboard.languages.language)) :
|
|
98
|
+
[]
|
|
99
|
+
}));
|
|
100
100
|
}
|
|
101
101
|
//
|
|
102
102
|
// Add lexical-model metadata
|
|
103
103
|
//
|
|
104
104
|
if (kps.lexicalModels && kps.lexicalModels.lexicalModel) {
|
|
105
|
-
kmp.lexicalModels = this.arrayWrap(kps.lexicalModels.lexicalModel).map((model) => {
|
|
106
|
-
|
|
107
|
-
|
|
105
|
+
kmp.lexicalModels = this.arrayWrap(kps.lexicalModels.lexicalModel).map((model) => ({
|
|
106
|
+
name: model.name,
|
|
107
|
+
id: model.iD,
|
|
108
|
+
languages: model.languages ?
|
|
109
|
+
this.kpsLanguagesToKmpLanguages(this.arrayWrap(model.languages.language)) : []
|
|
110
|
+
}));
|
|
108
111
|
}
|
|
109
112
|
//
|
|
110
|
-
//
|
|
113
|
+
// Verify version metadata; doing this in the transform
|
|
114
|
+
// while we have access to the .kps metadata, and keeping the
|
|
111
115
|
//
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
};
|
|
116
|
-
// TODO: compare the extracted version with other keyboards in the package
|
|
116
|
+
const versionValidator = new PackageVersionValidation(this.callbacks);
|
|
117
|
+
if (!versionValidator.validateAndUpdateVersions(kpsFilename, kps, kmp)) {
|
|
118
|
+
return null;
|
|
117
119
|
}
|
|
118
120
|
//
|
|
119
121
|
// Add Windows Start Menu metadata
|
|
@@ -167,58 +169,6 @@ export class KmpCompiler {
|
|
|
167
169
|
return language.map((element) => { return { name: element._, id: element.$.ID }; });
|
|
168
170
|
}
|
|
169
171
|
;
|
|
170
|
-
extractKeyboardVersionFromKmx(kpsFilename, kmp) {
|
|
171
|
-
// The DEFAULT_VERSION used to be '1.0', but we now use '0.0' to allow
|
|
172
|
-
// pre-release 0.x keyboards to be considered later than a keyboard without
|
|
173
|
-
// any version metadata at all.
|
|
174
|
-
const DEFAULT_VERSION = '0.0';
|
|
175
|
-
// Note: there is often version metadata in the .kps <Keyboard> element, but
|
|
176
|
-
// we don't read from the metadata because we want to ensure we have the
|
|
177
|
-
// most up-to-date keyboard version data here, from the compiled keyboard.
|
|
178
|
-
// Lexical model packages do not allow FollowKeyboardVersion
|
|
179
|
-
if (kmp.lexicalModels && kmp.lexicalModels.length) {
|
|
180
|
-
this.callbacks.reportMessage(CompilerMessages.Error_FollowKeyboardVersionNotAllowedForModelPackages());
|
|
181
|
-
return DEFAULT_VERSION;
|
|
182
|
-
}
|
|
183
|
-
if (!kmp.keyboards || !kmp.keyboards.length) {
|
|
184
|
-
this.callbacks.reportMessage(CompilerMessages.Warn_FollowKeyboardVersionButNoKeyboards());
|
|
185
|
-
return DEFAULT_VERSION;
|
|
186
|
-
}
|
|
187
|
-
// Reset the keyboard version to the default in the kmp.json metadata, for
|
|
188
|
-
// warning/failure code paths in this file
|
|
189
|
-
kmp.keyboards[0].version = DEFAULT_VERSION;
|
|
190
|
-
const file = kmp.files.find(file => this.callbacks.path.basename(file.name, '.kmx') == kmp.keyboards[0].id);
|
|
191
|
-
if (!file) {
|
|
192
|
-
this.callbacks.reportMessage(CompilerMessages.Error_KeyboardFileNotFound({ id: kmp.keyboards[0].id }));
|
|
193
|
-
return DEFAULT_VERSION;
|
|
194
|
-
}
|
|
195
|
-
const filename = this.callbacks.resolveFilename(kpsFilename, file.name);
|
|
196
|
-
if (!this.callbacks.fs.existsSync(filename)) {
|
|
197
|
-
// The zip phase will emit an error later if the file is missing, so
|
|
198
|
-
// we can just bail cleanly here
|
|
199
|
-
// console.debug(`The file ${filename} was not found`);
|
|
200
|
-
return DEFAULT_VERSION;
|
|
201
|
-
}
|
|
202
|
-
//
|
|
203
|
-
// load the .kmx and extract the version number
|
|
204
|
-
//
|
|
205
|
-
const kmxFileData = this.callbacks.loadFile(filename);
|
|
206
|
-
const kmxReader = new KmxFileReader();
|
|
207
|
-
const kmx = kmxReader.read(kmxFileData);
|
|
208
|
-
if (!kmx) {
|
|
209
|
-
// The file couldn't be read, it might be invalid or locked
|
|
210
|
-
this.callbacks.reportMessage(CompilerMessages.Error_KeyboardFileNotValid({ filename }));
|
|
211
|
-
return DEFAULT_VERSION;
|
|
212
|
-
}
|
|
213
|
-
const store = kmx.stores.find(store => store.dwSystemID == KMX.KMXFile.TSS_KEYBOARDVERSION);
|
|
214
|
-
if (!store) {
|
|
215
|
-
// We have no version number store, so use default version
|
|
216
|
-
this.callbacks.reportMessage(CompilerMessages.Warn_KeyboardFileHasNoKeyboardVersion({ filename }));
|
|
217
|
-
return DEFAULT_VERSION;
|
|
218
|
-
}
|
|
219
|
-
kmp.keyboards[0].version = store.dpString;
|
|
220
|
-
return store.dpString;
|
|
221
|
-
}
|
|
222
172
|
stripUndefined(o) {
|
|
223
173
|
for (const key in o) {
|
|
224
174
|
if (o[key] === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kmp-compiler.js","sourceRoot":"","sources":["../../../src/compiler/kmp-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAqB,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"kmp-compiler.js","sourceRoot":"","sources":["../../../src/compiler/kmp-compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,26 +22,28 @@ export declare class CompilerMessages {
|
|
|
22
22
|
static WARN_FileIsNotABinaryKvkFile: number;
|
|
23
23
|
static Error_FollowKeyboardVersionNotAllowedForModelPackages: () => import("@keymanapp/common-types").CompilerEvent;
|
|
24
24
|
static ERROR_FollowKeyboardVersionNotAllowedForModelPackages: number;
|
|
25
|
-
static
|
|
26
|
-
static
|
|
27
|
-
static
|
|
25
|
+
static Error_FollowKeyboardVersionButNoKeyboards: () => import("@keymanapp/common-types").CompilerEvent;
|
|
26
|
+
static ERROR_FollowKeyboardVersionButNoKeyboards: number;
|
|
27
|
+
static Error_KeyboardContentFileNotFound: (o: {
|
|
28
28
|
id: string;
|
|
29
29
|
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
30
|
-
static
|
|
30
|
+
static ERROR_KeyboardContentFileNotFound: number;
|
|
31
31
|
static Error_KeyboardFileNotValid: (o: {
|
|
32
32
|
filename: string;
|
|
33
33
|
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
34
34
|
static ERROR_KeyboardFileNotValid: number;
|
|
35
|
-
static
|
|
35
|
+
static Info_KeyboardFileHasNoKeyboardVersion: (o: {
|
|
36
36
|
filename: string;
|
|
37
37
|
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
38
|
-
static
|
|
38
|
+
static INFO_KeyboardFileHasNoKeyboardVersion: number;
|
|
39
39
|
static Error_PackageCannotContainBothModelsAndKeyboards: () => import("@keymanapp/common-types").CompilerEvent;
|
|
40
40
|
static ERROR_PackageCannotContainBothModelsAndKeyboards: number;
|
|
41
41
|
static Warn_PackageShouldNotRepeatLanguages: (o: {
|
|
42
42
|
resourceType: string;
|
|
43
43
|
id: string;
|
|
44
|
-
|
|
44
|
+
minimalTag: string;
|
|
45
|
+
firstTag: string;
|
|
46
|
+
secondTag: string;
|
|
45
47
|
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
46
48
|
static WARN_PackageShouldNotRepeatLanguages: number;
|
|
47
49
|
static Warn_PackageNameDoesNotFollowLexicalModelConventions: (o: {
|
|
@@ -58,5 +60,51 @@ export declare class CompilerMessages {
|
|
|
58
60
|
static WARN_FileInPackageDoesNotFollowFilenameConventions: number;
|
|
59
61
|
static Error_PackageNameCannotBeBlank: () => import("@keymanapp/common-types").CompilerEvent;
|
|
60
62
|
static ERROR_PackageNameCannotBeBlank: number;
|
|
63
|
+
static Error_KeyboardFileNotFound: (o: {
|
|
64
|
+
filename: string;
|
|
65
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
66
|
+
static ERROR_KeyboardFileNotFound: number;
|
|
67
|
+
static Warn_KeyboardVersionsDoNotMatch: (o: {
|
|
68
|
+
keyboard: string;
|
|
69
|
+
version: string;
|
|
70
|
+
firstKeyboard: string;
|
|
71
|
+
firstVersion: string;
|
|
72
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
73
|
+
static WARN_KeyboardVersionsDoNotMatch: number;
|
|
74
|
+
static Warn_KeyboardVersionsDoNotMatchPackageVersion: (o: {
|
|
75
|
+
keyboard: string;
|
|
76
|
+
keyboardVersion: string;
|
|
77
|
+
packageVersion: string;
|
|
78
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
79
|
+
static WARN_KeyboardVersionsDoNotMatchPackageVersion: number;
|
|
80
|
+
static Error_LanguageTagIsNotValid: (o: {
|
|
81
|
+
resourceType: string;
|
|
82
|
+
id: string;
|
|
83
|
+
lang: string;
|
|
84
|
+
e: any;
|
|
85
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
86
|
+
static ERROR_LanguageTagIsNotValid: number;
|
|
87
|
+
static Warn_LanguageTagIsNotMinimal: (o: {
|
|
88
|
+
resourceType: string;
|
|
89
|
+
id: string;
|
|
90
|
+
actual: string;
|
|
91
|
+
expected: string;
|
|
92
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
93
|
+
static WARN_LanguageTagIsNotMinimal: number;
|
|
94
|
+
static Error_MustHaveAtLeastOneLanguage: (o: {
|
|
95
|
+
resourceType: string;
|
|
96
|
+
id: string;
|
|
97
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
98
|
+
static ERROR_MustHaveAtLeastOneLanguage: number;
|
|
99
|
+
static Warn_RedistFileShouldNotBeInPackage: (o: {
|
|
100
|
+
filename: string;
|
|
101
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
102
|
+
static WARN_RedistFileShouldNotBeInPackage: number;
|
|
103
|
+
static Warn_DocFileDangerous: (o: {
|
|
104
|
+
filename: string;
|
|
105
|
+
}) => import("@keymanapp/common-types").CompilerEvent;
|
|
106
|
+
static WARN_DocFileDangerous: number;
|
|
107
|
+
static Error_PackageMustContainAModelOrAKeyboard: () => import("@keymanapp/common-types").CompilerEvent;
|
|
108
|
+
static ERROR_PackageMustContainAModelOrAKeyboard: number;
|
|
61
109
|
}
|
|
62
110
|
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/compiler/messages.ts"],"names":[],"mappings":"AASA,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,yBAAyB,MAAM;QAAC,CAAC,EAAE,GAAG,CAAA;KAAC,qDACgG;IAC9I,MAAM,CAAC,yBAAyB,SAAqB;IAErD,MAAM,CAAC,iBAAiB,MAAM;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,qDAAkG;IAClJ,MAAM,CAAC,iBAAiB,SAAoB;IAE5C,MAAM,CAAC,sBAAsB,MAAM;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,qDAA0E;IAC/H,MAAM,CAAC,sBAAsB,SAAqB;IAElD,MAAM,CAAC,wBAAwB,MAAM;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,GAAG,CAAA;KAAC,qDACoB;IACnF,MAAM,CAAC,wBAAwB,SAAqB;IAEpD,MAAM,CAAC,4BAA4B,MAAM;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,qDAEwB;IACnF,MAAM,CAAC,4BAA4B,SAAoB;IAEvD,MAAM,CAAC,qDAAqD,wDACA;IAC5D,MAAM,CAAC,qDAAqD,SAAqB;IAEjF,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/compiler/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CompilerErrorNamespace, CompilerErrorSeverity, CompilerMessageSpec as m } from "@keymanapp/common-types";
|
|
2
2
|
const Namespace = CompilerErrorNamespace.PackageCompiler;
|
|
3
|
-
|
|
3
|
+
const SevInfo = CompilerErrorSeverity.Info | Namespace;
|
|
4
4
|
// const SevHint = CompilerErrorSeverity.Hint | Namespace;
|
|
5
5
|
const SevWarn = CompilerErrorSeverity.Warn | Namespace;
|
|
6
6
|
const SevError = CompilerErrorSeverity.Error | Namespace;
|
|
@@ -19,17 +19,17 @@ export class CompilerMessages {
|
|
|
19
19
|
static WARN_FileIsNotABinaryKvkFile = SevWarn | 0x0005;
|
|
20
20
|
static Error_FollowKeyboardVersionNotAllowedForModelPackages = () => m(this.ERROR_FollowKeyboardVersionNotAllowedForModelPackages, `FollowKeyboardVersion is not allowed in model packages`);
|
|
21
21
|
static ERROR_FollowKeyboardVersionNotAllowedForModelPackages = SevError | 0x0006;
|
|
22
|
-
static
|
|
23
|
-
static
|
|
24
|
-
static
|
|
25
|
-
static
|
|
22
|
+
static Error_FollowKeyboardVersionButNoKeyboards = () => m(this.ERROR_FollowKeyboardVersionButNoKeyboards, `FollowKeyboardVersion is set, but the package contains no keyboards`);
|
|
23
|
+
static ERROR_FollowKeyboardVersionButNoKeyboards = SevError | 0x0007;
|
|
24
|
+
static Error_KeyboardContentFileNotFound = (o) => m(this.ERROR_KeyboardContentFileNotFound, `Keyboard ${o.id} was listed in <Keyboards> but a corresponding .kmx file was not found in <Files>`);
|
|
25
|
+
static ERROR_KeyboardContentFileNotFound = SevError | 0x0008;
|
|
26
26
|
static Error_KeyboardFileNotValid = (o) => m(this.ERROR_KeyboardFileNotValid, `Keyboard file ${o.filename} is not a valid .kmx file`);
|
|
27
27
|
static ERROR_KeyboardFileNotValid = SevError | 0x0009;
|
|
28
|
-
static
|
|
29
|
-
static
|
|
28
|
+
static Info_KeyboardFileHasNoKeyboardVersion = (o) => m(this.INFO_KeyboardFileHasNoKeyboardVersion, `Keyboard file ${o.filename} has no &KeyboardVersion store, using default '0.0'`);
|
|
29
|
+
static INFO_KeyboardFileHasNoKeyboardVersion = SevInfo | 0x000A;
|
|
30
30
|
static Error_PackageCannotContainBothModelsAndKeyboards = () => m(this.ERROR_PackageCannotContainBothModelsAndKeyboards, `The package contains both lexical models and keyboards, which is not permitted.`);
|
|
31
31
|
static ERROR_PackageCannotContainBothModelsAndKeyboards = SevError | 0x000B;
|
|
32
|
-
static Warn_PackageShouldNotRepeatLanguages = (o) => m(this.WARN_PackageShouldNotRepeatLanguages, `
|
|
32
|
+
static Warn_PackageShouldNotRepeatLanguages = (o) => m(this.WARN_PackageShouldNotRepeatLanguages, `Two language tags in ${o.resourceType} ${o.id}, '${o.firstTag}' and '${o.secondTag}', reduce to the same minimal tag '${o.minimalTag}'.`);
|
|
33
33
|
static WARN_PackageShouldNotRepeatLanguages = SevWarn | 0x000C;
|
|
34
34
|
static Warn_PackageNameDoesNotFollowLexicalModelConventions = (o) => m(this.WARN_PackageNameDoesNotFollowLexicalModelConventions, `The package file ${o.filename} does not follow the recommended model filename conventions. The name should be all lower case, ` +
|
|
35
35
|
`include only alphanumeric characters and underscore (_), not start with a digit, and should have the structure ` +
|
|
@@ -43,5 +43,23 @@ export class CompilerMessages {
|
|
|
43
43
|
static WARN_FileInPackageDoesNotFollowFilenameConventions = SevWarn | 0x000F;
|
|
44
44
|
static Error_PackageNameCannotBeBlank = () => m(this.ERROR_PackageNameCannotBeBlank, `Package name cannot be an empty string.`);
|
|
45
45
|
static ERROR_PackageNameCannotBeBlank = SevError | 0x0010;
|
|
46
|
+
static Error_KeyboardFileNotFound = (o) => m(this.ERROR_KeyboardFileNotFound, `Keyboard file ${o.filename} was not found. Has it been compiled?`);
|
|
47
|
+
static ERROR_KeyboardFileNotFound = SevError | 0x0011;
|
|
48
|
+
static Warn_KeyboardVersionsDoNotMatch = (o) => m(this.WARN_KeyboardVersionsDoNotMatch, `Keyboard ${o.keyboard} version ${o.version} does not match keyboard ${o.firstKeyboard} version ${o.firstVersion}.`);
|
|
49
|
+
static WARN_KeyboardVersionsDoNotMatch = SevWarn | 0x0012;
|
|
50
|
+
static Warn_KeyboardVersionsDoNotMatchPackageVersion = (o) => m(this.WARN_KeyboardVersionsDoNotMatchPackageVersion, `Keyboard ${o.keyboard} version ${o.keyboardVersion} does not match package version ${o.packageVersion}.`);
|
|
51
|
+
static WARN_KeyboardVersionsDoNotMatchPackageVersion = SevWarn | 0x0013;
|
|
52
|
+
static Error_LanguageTagIsNotValid = (o) => m(this.ERROR_LanguageTagIsNotValid, `Language tag '${o.lang}' in ${o.resourceType} ${o.id} is invalid.`);
|
|
53
|
+
static ERROR_LanguageTagIsNotValid = SevError | 0x0014;
|
|
54
|
+
static Warn_LanguageTagIsNotMinimal = (o) => m(this.WARN_LanguageTagIsNotMinimal, `Language tag '${o.actual}' in ${o.resourceType} ${o.id} is not minimal, and should be '${o.expected}'.`);
|
|
55
|
+
static WARN_LanguageTagIsNotMinimal = SevWarn | 0x0015;
|
|
56
|
+
static Error_MustHaveAtLeastOneLanguage = (o) => m(this.ERROR_MustHaveAtLeastOneLanguage, `The ${o.resourceType} ${o.id} must have at least one language specified.`);
|
|
57
|
+
static ERROR_MustHaveAtLeastOneLanguage = SevError | 0x0016;
|
|
58
|
+
static Warn_RedistFileShouldNotBeInPackage = (o) => m(this.WARN_RedistFileShouldNotBeInPackage, `The Keyman system file '${o.filename}' should not be compiled into the package.`);
|
|
59
|
+
static WARN_RedistFileShouldNotBeInPackage = SevWarn | 0x0017;
|
|
60
|
+
static Warn_DocFileDangerous = (o) => m(this.WARN_DocFileDangerous, `Microsoft Word .doc or .docx files ('${o.filename}') are not portable. You should instead use HTML or PDF format.`);
|
|
61
|
+
static WARN_DocFileDangerous = SevWarn | 0x0018;
|
|
62
|
+
static Error_PackageMustContainAModelOrAKeyboard = () => m(this.ERROR_PackageMustContainAModelOrAKeyboard, `Package must contain a lexical model or a keyboard.`);
|
|
63
|
+
static ERROR_PackageMustContainAModelOrAKeyboard = SevError | 0x0019;
|
|
46
64
|
}
|
|
47
65
|
//# sourceMappingURL=messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/compiler/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,mBAAmB,IAAI,CAAC,EAAE,MAAM,yBAAyB,CAAC;AAElH,MAAM,SAAS,GAAG,sBAAsB,CAAC,eAAe,CAAC;AACzD,
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/compiler/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,13 @@ export declare class PackageValidation {
|
|
|
3
3
|
private callbacks;
|
|
4
4
|
constructor(callbacks: CompilerCallbacks);
|
|
5
5
|
validate(filename: string, kmpJson: KmpJsonFile.KmpJsonFile): boolean;
|
|
6
|
-
private
|
|
6
|
+
private checkForDuplicatedOrNonMinimalLanguages;
|
|
7
7
|
private checkForModelsAndKeyboardsInSamePackage;
|
|
8
8
|
private checkLexicalModels;
|
|
9
9
|
private checkKeyboards;
|
|
10
10
|
private checkContentFiles;
|
|
11
11
|
private checkContentFile;
|
|
12
|
+
private checkIfContentFileIsDangerous;
|
|
12
13
|
private checkPackageInfo;
|
|
13
14
|
}
|
|
14
15
|
//# sourceMappingURL=package-validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-validation.d.ts","sourceRoot":"","sources":["../../../src/compiler/package-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"package-validation.d.ts","sourceRoot":"","sources":["../../../src/compiler/package-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAoBzE,qBAAa,iBAAiB;IAEhB,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,iBAAiB;IAGzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,WAAW;IAmBlE,OAAO,CAAC,uCAAuC;IAkC/C,OAAO,CAAC,uCAAuC;IAmB/C,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,6BAA6B;IAarC,OAAO,CAAC,gBAAgB;CAQzB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CompilerMessages } from './messages.js';
|
|
2
|
+
import { keymanEngineForWindowsFiles, keymanForWindowsInstallerFiles, keymanForWindowsRedistFiles } from './redist-files.js';
|
|
2
3
|
// const SLexicalModelExtension = '.model.js';
|
|
3
4
|
// The keyboard ID SHOULD adhere to this pattern:
|
|
4
5
|
const KEYBOARD_ID_PATTERN_PACKAGE = /^[a-z_][a-z0-9_]*\.(kps|kmp)$/;
|
|
@@ -34,23 +35,46 @@ export class PackageValidation {
|
|
|
34
35
|
}
|
|
35
36
|
return true;
|
|
36
37
|
}
|
|
37
|
-
|
|
38
|
-
let
|
|
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
|
+
}
|
|
39
44
|
for (let lang of languages) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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] }));
|
|
43
59
|
}
|
|
44
60
|
else {
|
|
45
|
-
|
|
61
|
+
minimalTags[minimalTag] = lang.id;
|
|
46
62
|
}
|
|
47
63
|
}
|
|
64
|
+
return true;
|
|
48
65
|
}
|
|
49
66
|
checkForModelsAndKeyboardsInSamePackage(kmpJson) {
|
|
50
67
|
if (kmpJson.lexicalModels?.length > 0 && kmpJson.keyboards?.length > 0) {
|
|
51
68
|
this.callbacks.reportMessage(CompilerMessages.Error_PackageCannotContainBothModelsAndKeyboards());
|
|
52
69
|
return false;
|
|
53
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
|
+
}
|
|
54
78
|
return true;
|
|
55
79
|
}
|
|
56
80
|
checkLexicalModels(filename, kmpJson) {
|
|
@@ -62,7 +86,9 @@ export class PackageValidation {
|
|
|
62
86
|
this.callbacks.reportMessage(CompilerMessages.Warn_PackageNameDoesNotFollowLexicalModelConventions({ filename }));
|
|
63
87
|
}
|
|
64
88
|
for (let model of kmpJson.lexicalModels) {
|
|
65
|
-
this.
|
|
89
|
+
if (!this.checkForDuplicatedOrNonMinimalLanguages('model', model.id, model.languages)) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
66
92
|
}
|
|
67
93
|
return true;
|
|
68
94
|
}
|
|
@@ -75,7 +101,9 @@ export class PackageValidation {
|
|
|
75
101
|
this.callbacks.reportMessage(CompilerMessages.Warn_PackageNameDoesNotFollowKeyboardConventions({ filename }));
|
|
76
102
|
}
|
|
77
103
|
for (let keyboard of kmpJson.keyboards) {
|
|
78
|
-
this.
|
|
104
|
+
if (!this.checkForDuplicatedOrNonMinimalLanguages('keyboard', keyboard.id, keyboard.languages)) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
79
107
|
}
|
|
80
108
|
return true;
|
|
81
109
|
}
|
|
@@ -94,6 +122,21 @@ export class PackageValidation {
|
|
|
94
122
|
if (!CONTENT_FILE_BASENAME_PATTERN.test(base) || !CONTENT_FILE_EXTENSION_PATTERN.test(ext)) {
|
|
95
123
|
this.callbacks.reportMessage(CompilerMessages.Warn_FileInPackageDoesNotFollowFilenameConventions({ filename }));
|
|
96
124
|
}
|
|
125
|
+
if (!this.checkIfContentFileIsDangerous(file)) {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
checkIfContentFileIsDangerous(file) {
|
|
131
|
+
let filename = this.callbacks.path.basename(file.name).toLowerCase();
|
|
132
|
+
if (keymanForWindowsInstallerFiles.includes(filename) ||
|
|
133
|
+
keymanForWindowsRedistFiles.includes(filename) ||
|
|
134
|
+
keymanEngineForWindowsFiles.includes(filename)) {
|
|
135
|
+
this.callbacks.reportMessage(CompilerMessages.Warn_RedistFileShouldNotBeInPackage({ filename }));
|
|
136
|
+
}
|
|
137
|
+
if (filename.match(/\.doc(x?)$/)) {
|
|
138
|
+
this.callbacks.reportMessage(CompilerMessages.Warn_DocFileDangerous({ filename }));
|
|
139
|
+
}
|
|
97
140
|
return true;
|
|
98
141
|
}
|
|
99
142
|
checkPackageInfo(file) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-validation.js","sourceRoot":"","sources":["../../../src/compiler/package-validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"package-validation.js","sourceRoot":"","sources":["../../../src/compiler/package-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { KmpJsonFile, CompilerCallbacks, KpsFile } from '@keymanapp/common-types';
|
|
2
|
+
export declare class PackageVersionValidation {
|
|
3
|
+
private callbacks;
|
|
4
|
+
constructor(callbacks: CompilerCallbacks);
|
|
5
|
+
/**
|
|
6
|
+
* Verifies version information in corresponding keyboards and updates kmpJson
|
|
7
|
+
* metadata as the version information can be out of sync in the .kps file
|
|
8
|
+
* after updating a contained keyboard.
|
|
9
|
+
* @param kpsFilename
|
|
10
|
+
* @param kps
|
|
11
|
+
* @param kmp
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
validateAndUpdateVersions(kpsFilename: string, kps: KpsFile.KpsFile, kmp: KmpJsonFile.KmpJsonFile): boolean;
|
|
15
|
+
private checkFollowKeyboardVersion;
|
|
16
|
+
private updateKeyboardVersionFromKmx;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=package-version-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-version-validation.d.ts","sourceRoot":"","sources":["../../../src/compiler/package-version-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAsB,MAAM,yBAAyB,CAAC;AAGtG,qBAAa,wBAAwB;IAEvB,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,iBAAiB;IAEhD;;;;;;;;OAQG;IACI,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC,WAAW;IAiDxG,OAAO,CAAC,0BAA0B;IAelC,OAAO,CAAC,4BAA4B;CA0DrC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { KmxFileReader, KMX } from '@keymanapp/common-types';
|
|
2
|
+
import { CompilerMessages } from './messages.js';
|
|
3
|
+
export class PackageVersionValidation {
|
|
4
|
+
callbacks;
|
|
5
|
+
constructor(callbacks) {
|
|
6
|
+
this.callbacks = callbacks;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Verifies version information in corresponding keyboards and updates kmpJson
|
|
10
|
+
* metadata as the version information can be out of sync in the .kps file
|
|
11
|
+
* after updating a contained keyboard.
|
|
12
|
+
* @param kpsFilename
|
|
13
|
+
* @param kps
|
|
14
|
+
* @param kmp
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
validateAndUpdateVersions(kpsFilename, kps, kmp) {
|
|
18
|
+
const followKeyboardVersion = kps.options?.followKeyboardVersion !== undefined;
|
|
19
|
+
if (followKeyboardVersion) {
|
|
20
|
+
if (!this.checkFollowKeyboardVersion(kps, kmp)) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (!kmp.keyboards) {
|
|
25
|
+
// Lexical models don't have version metadata; only their packages.
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
let result = true;
|
|
29
|
+
// We now know we have at least one keyboard in the package
|
|
30
|
+
for (let keyboard of kmp.keyboards) {
|
|
31
|
+
result = this.updateKeyboardVersionFromKmx(kpsFilename, kmp, keyboard) && result;
|
|
32
|
+
if (result) {
|
|
33
|
+
if (kmp.keyboards[0].version !== keyboard.version) {
|
|
34
|
+
this.callbacks.reportMessage(CompilerMessages.Warn_KeyboardVersionsDoNotMatch({
|
|
35
|
+
keyboard: keyboard.id,
|
|
36
|
+
version: keyboard.version,
|
|
37
|
+
firstKeyboard: kmp.keyboards[0].id,
|
|
38
|
+
firstVersion: kmp.keyboards[0].version
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (result) {
|
|
44
|
+
if (followKeyboardVersion) {
|
|
45
|
+
kmp.info.version.description = kmp.keyboards[0].version;
|
|
46
|
+
}
|
|
47
|
+
else if (kmp.info.version?.description != kmp.keyboards[0].version) {
|
|
48
|
+
// Only need to compare against first keyboard as we compare keyboards above
|
|
49
|
+
this.callbacks.reportMessage(CompilerMessages.Warn_KeyboardVersionsDoNotMatchPackageVersion({
|
|
50
|
+
keyboard: kmp.keyboards[0].id,
|
|
51
|
+
keyboardVersion: kmp.keyboards[0].version,
|
|
52
|
+
packageVersion: kmp.info.version?.description
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
checkFollowKeyboardVersion(kps, kmp) {
|
|
59
|
+
// Lexical model packages do not allow FollowKeyboardVersion
|
|
60
|
+
if (kmp.lexicalModels && kmp.lexicalModels.length) {
|
|
61
|
+
this.callbacks.reportMessage(CompilerMessages.Error_FollowKeyboardVersionNotAllowedForModelPackages());
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
if (!kmp.keyboards || !kmp.keyboards.length) {
|
|
65
|
+
this.callbacks.reportMessage(CompilerMessages.Error_FollowKeyboardVersionButNoKeyboards());
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
updateKeyboardVersionFromKmx(kpsFilename, kmp, keyboard) {
|
|
71
|
+
// The DEFAULT_VERSION used to be '1.0', but we now use '0.0' to allow
|
|
72
|
+
// pre-release 0.x keyboards to be considered later than a keyboard without
|
|
73
|
+
// any version metadata at all.
|
|
74
|
+
const DEFAULT_VERSION = '0.0';
|
|
75
|
+
// Note: there is often version metadata in the .kps <Keyboard> element, but
|
|
76
|
+
// we don't read from the metadata because we want to ensure we have the
|
|
77
|
+
// most up-to-date keyboard version data here, from the compiled keyboard.
|
|
78
|
+
// Reset the keyboard version to the default in the kmp.json metadata, for
|
|
79
|
+
// warning/failure code paths in this file
|
|
80
|
+
keyboard.version = DEFAULT_VERSION;
|
|
81
|
+
const file = kmp.files.find(file => this.callbacks.path.basename(file.name, '.kmx') == keyboard.id);
|
|
82
|
+
if (!file) {
|
|
83
|
+
this.callbacks.reportMessage(CompilerMessages.Error_KeyboardContentFileNotFound({ id: keyboard.id }));
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
const filename = this.callbacks.resolveFilename(kpsFilename, file.name);
|
|
87
|
+
if (!this.callbacks.fs.existsSync(filename)) {
|
|
88
|
+
this.callbacks.reportMessage(CompilerMessages.Error_KeyboardFileNotFound({ filename }));
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
//
|
|
92
|
+
// load the .kmx and extract the version number
|
|
93
|
+
//
|
|
94
|
+
let kmxFileData;
|
|
95
|
+
try {
|
|
96
|
+
kmxFileData = this.callbacks.loadFile(filename);
|
|
97
|
+
}
|
|
98
|
+
catch (e) {
|
|
99
|
+
this.callbacks.reportMessage(CompilerMessages.Error_FileCouldNotBeRead({ filename, e }));
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
const kmxReader = new KmxFileReader();
|
|
103
|
+
const kmx = kmxReader.read(kmxFileData);
|
|
104
|
+
if (!kmx) {
|
|
105
|
+
// The file couldn't be read, it might not be a .kmx file
|
|
106
|
+
this.callbacks.reportMessage(CompilerMessages.Error_KeyboardFileNotValid({ filename }));
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
const store = kmx.stores.find(store => store.dwSystemID == KMX.KMXFile.TSS_KEYBOARDVERSION);
|
|
110
|
+
if (!store) {
|
|
111
|
+
// We have no version number store, so use default version
|
|
112
|
+
this.callbacks.reportMessage(CompilerMessages.Info_KeyboardFileHasNoKeyboardVersion({ filename }));
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
keyboard.version = store.dpString;
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=package-version-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-version-validation.js","sourceRoot":"","sources":["../../../src/compiler/package-version-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
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 const keymanForWindowsInstallerFiles = [
|
|
16
|
+
'keymandesktop.msi',
|
|
17
|
+
'keymanengine.msm'
|
|
18
|
+
];
|
|
19
|
+
export const keymanEngineForWindowsFiles = [
|
|
20
|
+
'base.xslt',
|
|
21
|
+
'crashpad_handler.exe',
|
|
22
|
+
'keyman-debug-etw.man',
|
|
23
|
+
'keyman.exe',
|
|
24
|
+
'keyman32.dll',
|
|
25
|
+
'keyman64.dll',
|
|
26
|
+
'keymanmc.dll',
|
|
27
|
+
'keymanx64.exe',
|
|
28
|
+
'kmcomapi.dll',
|
|
29
|
+
'kmcomapi.x64.dll',
|
|
30
|
+
'kmrefresh.x64.exe',
|
|
31
|
+
'kmrefresh.x86.exe',
|
|
32
|
+
'kmtip.dll',
|
|
33
|
+
'kmtip64.dll',
|
|
34
|
+
'mcompile.exe',
|
|
35
|
+
'sentry.dll',
|
|
36
|
+
'sentry.x64.dll',
|
|
37
|
+
'si_browsers.xslt',
|
|
38
|
+
'si_fonts.xslt',
|
|
39
|
+
'si_hookdlls.xslt',
|
|
40
|
+
'si_keyman.xslt',
|
|
41
|
+
'si_language.xslt',
|
|
42
|
+
'si_office.xslt',
|
|
43
|
+
'si_overview.xslt',
|
|
44
|
+
'si_processes.xslt',
|
|
45
|
+
'si_processes_x64.xslt',
|
|
46
|
+
'si_startup.xslt',
|
|
47
|
+
'tsysinfo.exe',
|
|
48
|
+
];
|
|
49
|
+
export const keymanForWindowsRedistFiles = [
|
|
50
|
+
'desktop_resources.dll',
|
|
51
|
+
'keymandesktop.chm',
|
|
52
|
+
'kmbrowserhost.exe',
|
|
53
|
+
'kmconfig.exe',
|
|
54
|
+
'kmshell.exe',
|
|
55
|
+
'unicodedata.mdb',
|
|
56
|
+
];
|
|
57
|
+
//# sourceMappingURL=redist-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redist-files.js","sourceRoot":"","sources":["../../../src/compiler/redist-files.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;GAaG;AAEH,MAAM,CAAC,MACL,8BAA8B,GAAa;IACzC,mBAAmB;IACnB,kBAAkB;CACnB,CAAC;AAGJ,MAAM,CAAC,MACL,2BAA2B,GAAa;IACtC,WAAW;IACX,sBAAsB;IACtB,sBAAsB;IACtB,YAAY;IACZ,cAAc;IACd,cAAc;IACd,cAAc;IACd,eAAe;IACf,cAAc;IACd,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,WAAW;IACX,aAAa;IACb,cAAc;IACd,YAAY;IACZ,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,mBAAmB;IACnB,uBAAuB;IACvB,iBAAiB;IACjB,cAAc;CACf,CAAC;AAEJ,MAAM,CAAC,MACL,2BAA2B,GAAa;IACtC,uBAAuB;IACvB,mBAAmB;IACnB,mBAAmB;IACnB,cAAc;IACd,aAAa;IACb,iBAAiB;CAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"jszip": "^3.7.0",
|
|
34
|
-
"@keymanapp/common-types": "17.0.
|
|
34
|
+
"@keymanapp/common-types": "17.0.108-alpha"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@types/chai": "^4.1.7",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"mocha": "^8.4.0",
|
|
44
44
|
"ts-node": "^9.1.1",
|
|
45
45
|
"typescript": "^4.9.5",
|
|
46
|
-
"@keymanapp/developer-test-helpers": "17.0.
|
|
46
|
+
"@keymanapp/developer-test-helpers": "17.0.108-alpha"
|
|
47
47
|
},
|
|
48
48
|
"mocha": {
|
|
49
49
|
"spec": "build/test/**/test-*.js",
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"type": "git",
|
|
68
68
|
"url": "git+https://github.com/keymanapp/keyman.git"
|
|
69
69
|
},
|
|
70
|
-
"version": "17.0.
|
|
70
|
+
"version": "17.0.108-alpha"
|
|
71
71
|
}
|