@keymanapp/kmc 18.0.11-alpha → 18.0.13-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/commands/analyze.d.ts.map +1 -1
- package/build/src/commands/analyze.js +106 -107
- package/build/src/commands/analyze.js.map +1 -1
- package/build/src/commands/build.js +166 -168
- package/build/src/commands/build.js.map +1 -1
- package/build/src/commands/buildClasses/BuildActivity.js +31 -33
- package/build/src/commands/buildClasses/BuildActivity.js.map +1 -1
- package/build/src/commands/buildClasses/BuildKeyboardInfo.js +47 -49
- package/build/src/commands/buildClasses/BuildKeyboardInfo.js.map +1 -1
- package/build/src/commands/buildClasses/BuildKmnKeyboard.js +35 -37
- package/build/src/commands/buildClasses/BuildKmnKeyboard.js.map +1 -1
- package/build/src/commands/buildClasses/BuildLdmlKeyboard.js +19 -21
- package/build/src/commands/buildClasses/BuildLdmlKeyboard.js.map +1 -1
- package/build/src/commands/buildClasses/BuildModel.js +13 -15
- package/build/src/commands/buildClasses/BuildModel.js.map +1 -1
- package/build/src/commands/buildClasses/BuildModelInfo.js +73 -75
- package/build/src/commands/buildClasses/BuildModelInfo.js.map +1 -1
- package/build/src/commands/buildClasses/BuildPackage.js +13 -15
- package/build/src/commands/buildClasses/BuildPackage.js.map +1 -1
- package/build/src/commands/buildClasses/BuildProject.js +116 -118
- package/build/src/commands/buildClasses/BuildProject.js.map +1 -1
- package/build/src/commands/buildClasses/buildActivities.js +21 -23
- package/build/src/commands/buildClasses/buildActivities.js.map +1 -1
- package/build/src/commands/buildTestData/index.js +39 -41
- package/build/src/commands/buildTestData/index.js.map +1 -1
- package/build/src/commands/buildWindowsPackageInstaller/index.d.ts +1 -1
- package/build/src/commands/buildWindowsPackageInstaller/index.d.ts.map +1 -1
- package/build/src/commands/buildWindowsPackageInstaller/index.js +43 -45
- package/build/src/commands/buildWindowsPackageInstaller/index.js.map +1 -1
- package/build/src/commands/messageCommand.js +237 -239
- package/build/src/commands/messageCommand.js.map +1 -1
- package/build/src/kmc.js +57 -58
- package/build/src/kmc.js.map +1 -1
- package/build/src/kmlmc.js +57 -59
- package/build/src/kmlmc.js.map +1 -1
- package/build/src/kmlmp.js +46 -48
- package/build/src/kmlmp.js.map +1 -1
- package/build/src/messages/infrastructureMessages.js +75 -77
- package/build/src/messages/infrastructureMessages.js.map +1 -1
- package/build/src/messages/messageNamespaces.js +39 -41
- package/build/src/messages/messageNamespaces.js.map +1 -1
- package/build/src/util/NodeCompilerCallbacks.js +221 -223
- package/build/src/util/NodeCompilerCallbacks.js.map +1 -1
- package/build/src/util/TestKeymanSentry.d.ts +3 -2
- package/build/src/util/TestKeymanSentry.d.ts.map +1 -1
- package/build/src/util/TestKeymanSentry.js +51 -53
- package/build/src/util/TestKeymanSentry.js.map +1 -1
- package/build/src/util/baseOptions.js +24 -26
- package/build/src/util/baseOptions.js.map +1 -1
- package/build/src/util/calculateSourcePath.js +18 -20
- package/build/src/util/calculateSourcePath.js.map +1 -1
- package/build/src/util/extendedCompilerOptions.js +123 -125
- package/build/src/util/extendedCompilerOptions.js.map +1 -1
- package/build/src/util/fileLists.js +46 -48
- package/build/src/util/fileLists.js.map +1 -1
- package/build/src/util/getDeveloperBinPath.js +36 -38
- package/build/src/util/getDeveloperBinPath.js.map +1 -1
- package/build/src/util/getLastGitCommitDate.js +44 -46
- package/build/src/util/getLastGitCommitDate.js.map +1 -1
- package/build/src/util/kmcSentryOptions.d.ts +8 -0
- package/build/src/util/kmcSentryOptions.d.ts.map +1 -0
- package/build/src/util/kmcSentryOptions.js +20 -0
- package/build/src/util/kmcSentryOptions.js.map +1 -0
- package/build/src/util/projectLoader.js +51 -53
- package/build/src/util/projectLoader.js.map +1 -1
- package/build/src/util/projectRunner.js +27 -29
- package/build/src/util/projectRunner.js.map +1 -1
- package/build/src/util/sysexits.js +7 -9
- package/build/src/util/sysexits.js.map +1 -1
- package/package.json +12 -12
|
@@ -1,53 +1,51 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
//# debugId=d316e87d-34ce-547a-a74b-c74e6ec090ba
|
|
53
|
-
//# sourceMappingURL=TestKeymanSentry.js.map
|
|
1
|
+
import { KmnCompiler } from "@keymanapp/kmc-kmn";
|
|
2
|
+
import { NodeCompilerCallbacks } from "./NodeCompilerCallbacks.js";
|
|
3
|
+
import { KeymanSentry } from '@keymanapp/developer-utils';
|
|
4
|
+
const cli = process.argv.join(' ');
|
|
5
|
+
export class TestKeymanSentry {
|
|
6
|
+
static isTestCL() {
|
|
7
|
+
// Note single hyphen match which matches other Developer console app
|
|
8
|
+
// implementations, but this will also work with
|
|
9
|
+
// --sentry-client-test-exception, so we get the best of both worlds.
|
|
10
|
+
// This parameter is undocumented by design
|
|
11
|
+
return cli.includes('-sentry-client-test-exception');
|
|
12
|
+
}
|
|
13
|
+
static async runTestIfCLRequested(options) {
|
|
14
|
+
if (TestKeymanSentry.isTestCL()) {
|
|
15
|
+
await TestKeymanSentry.test(options);
|
|
16
|
+
console.error('Unexpected return from KeymanSentry.test');
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
static async test(options) {
|
|
21
|
+
KeymanSentry.init(options);
|
|
22
|
+
if (cli.includes('kmcmplib')) {
|
|
23
|
+
const compiler = new KmnCompiler();
|
|
24
|
+
const callbacks = new NodeCompilerCallbacks({});
|
|
25
|
+
if (!await compiler.init(callbacks, null)) {
|
|
26
|
+
throw new Error('Failed to instantiate WASM compiler');
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
compiler.testSentry();
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
await KeymanSentry.captureException(e);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else if (cli.includes('event')) {
|
|
36
|
+
const eventId = KeymanSentry.captureMessage('Test message from -sentry-client-test-exception event');
|
|
37
|
+
await KeymanSentry.close();
|
|
38
|
+
console.log(`Captured test message with id ${eventId}`);
|
|
39
|
+
process.exit(0);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
try {
|
|
43
|
+
throw new Error('Test error from -sentry-client-test-exception event');
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
await KeymanSentry.captureException(e);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=TestKeymanSentry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"version":3,"file":"TestKeymanSentry.js","sourceRoot":"","sources":["../../../src/util/TestKeymanSentry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAqB,MAAM,4BAA4B,CAAC;AAE7E,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEnC,MAAM,OAAO,gBAAgB;IAC3B,MAAM,CAAC,QAAQ;QACb,qEAAqE;QACrE,gDAAgD;QAChD,qEAAqE;QACrE,2CAA2C;QAC3C,OAAO,GAAG,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAA2B;QAC3D,IAAG,gBAAgB,CAAC,QAAQ,EAAE,EAAE;YAC9B,MAAM,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAA2B;QAC3C,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAC3B,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,IAAI,qBAAqB,CAAC,EAAE,CAAC,CAAC;YAChD,IAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE;gBACxC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;aACxD;YACD,IAAI;gBACF,QAAQ,CAAC,UAAU,EAAE,CAAC;aACvB;YAAC,OAAM,CAAM,EAAE;gBACd,MAAM,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;aACxC;SACF;aAAM,IAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,cAAc,CAAC,uDAAuD,CAAC,CAAC;YACrG,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,iCAAiC,OAAO,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;aAAM;YACL,IAAI;gBACF,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;aACxE;YAAC,OAAM,CAAM,EAAE;gBACd,MAAM,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;aACxC;SACF;IACH,CAAC;CAEF"}
|
|
@@ -1,26 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
//# debugId=f36cfcc0-e8b9-5fd8-8457-379d8427f575
|
|
26
|
-
//# sourceMappingURL=baseOptions.js.map
|
|
1
|
+
import { ALL_COMPILER_LOG_FORMATS, ALL_COMPILER_LOG_LEVELS } from "@keymanapp/common-types";
|
|
2
|
+
import { Option } from "commander";
|
|
3
|
+
/**
|
|
4
|
+
* These options map to CompilerBaseOptions
|
|
5
|
+
*/
|
|
6
|
+
export class BaseOptions {
|
|
7
|
+
static addLogLevel(program) {
|
|
8
|
+
return program.addOption(new Option('-l, --log-level <logLevel>', 'Log level').choices(ALL_COMPILER_LOG_LEVELS).default('info'));
|
|
9
|
+
}
|
|
10
|
+
static addLogFormat(program) {
|
|
11
|
+
return program.addOption(new Option('--log-format <logFormat>', 'Log format').choices(ALL_COMPILER_LOG_FORMATS).default('formatted'));
|
|
12
|
+
}
|
|
13
|
+
static addOutFile(program) {
|
|
14
|
+
return program.option('-o, --out-file <filename>', 'Override the default path and filename for the output file');
|
|
15
|
+
}
|
|
16
|
+
static addAll(program) {
|
|
17
|
+
return [
|
|
18
|
+
this.addLogLevel,
|
|
19
|
+
this.addLogFormat,
|
|
20
|
+
this.addOutFile,
|
|
21
|
+
].reduce((p, f) => f(p), program);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=baseOptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"version":3,"file":"baseOptions.js","sourceRoot":"","sources":["../../../src/util/baseOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAuC,MAAM,yBAAyB,CAAC;AACjI,OAAO,EAAW,MAAM,EAAE,MAAM,WAAW,CAAC;AAgB5C;;GAEG;AACH,MAAM,OAAO,WAAW;IACf,MAAM,CAAC,WAAW,CAAC,OAAgB;QACxC,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,4BAA4B,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACnI,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,OAAgB;QACzC,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,0BAA0B,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IACxI,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,OAAgB;QACvC,OAAO,OAAO,CAAC,MAAM,CAAC,2BAA2B,EAAE,4DAA4D,CAAC,CAAA;IAClH,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,OAAgB;QACnC,OAAO;YACL,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,UAAU;SAChB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;CACF"}
|
|
@@ -1,20 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
//# debugId=42a9f55e-4325-560c-9e7f-ad818b2ca721
|
|
20
|
-
//# sourceMappingURL=calculateSourcePath.js.map
|
|
1
|
+
/**
|
|
2
|
+
* This is a helper function to derive the relative path within the
|
|
3
|
+
* @keymanapp/keyboards or @keymanapp/lexical-models repository, given a .kpj
|
|
4
|
+
* project filename. Handles \ vs /. Must be a project filename, not a project
|
|
5
|
+
* folder.
|
|
6
|
+
*
|
|
7
|
+
* For example, given "c/path/to/keyboards/release/k/keyboard/keyboard.kpj, we
|
|
8
|
+
* want "release/k/keyboard".
|
|
9
|
+
*/
|
|
10
|
+
export function calculateSourcePath(projectFilename) {
|
|
11
|
+
projectFilename = projectFilename.replace(/\\/g, '/');
|
|
12
|
+
const result = /(release|legacy|experimental)\/([^\/]+)\/([^\/]+)\/([^\/]+)\.kpj$/.exec(projectFilename);
|
|
13
|
+
if (!result) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
return `${result[1]}/${result[2]}/${result[3]}`;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=calculateSourcePath.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"version":3,"file":"calculateSourcePath.js","sourceRoot":"","sources":["../../../src/util/calculateSourcePath.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,eAAuB;IACzD,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,mEAAmE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACzG,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,CAAC"}
|
|
@@ -1,125 +1,123 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* @param
|
|
14
|
-
* @
|
|
15
|
-
*
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
* @param
|
|
73
|
-
* @
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
*
|
|
90
|
-
* @param
|
|
91
|
-
* @
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
//
|
|
100
|
-
//
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
//# debugId=fa7cd91b-d534-589e-be3f-ecaed00bfb26
|
|
125
|
-
//# sourceMappingURL=extendedCompilerOptions.js.map
|
|
1
|
+
import { CompilerError, CompilerErrorSeverity } from '@keymanapp/common-types';
|
|
2
|
+
import { InfrastructureMessages } from '../messages/infrastructureMessages.js';
|
|
3
|
+
import { messageNamespaceKeys, messageSources } from '../messages/messageNamespaces.js';
|
|
4
|
+
;
|
|
5
|
+
/**
|
|
6
|
+
* converts an --message command line parameter `<id>[:level]` and verifies that
|
|
7
|
+
* it is a valid message, returning `null` if it is not a valid id or level. If
|
|
8
|
+
* level is omitted, the message is disabled. Valid levels are Disable, Info,
|
|
9
|
+
* Hint, Warn or Error (can shorten or first character of each).
|
|
10
|
+
*
|
|
11
|
+
* Will report details of any errors to callbacks.reportMessage
|
|
12
|
+
* @param message command line parameter in format '["KM"]<id>[":"level]'
|
|
13
|
+
* @param callbacks
|
|
14
|
+
* @returns CompilerMessageOverride map with the new severity level for the
|
|
15
|
+
* message; or `null` if parameter is invalid.
|
|
16
|
+
*/
|
|
17
|
+
function commandOptionsMessageToCompilerOptionsMessage(message, callbacks) {
|
|
18
|
+
const pattern = /^(KM)?([0-9a-f]+)(:(D|Disable|I|Info|H|Hint|W|Warn|E|Error))?$/i;
|
|
19
|
+
const result = message.match(pattern);
|
|
20
|
+
if (!result) {
|
|
21
|
+
callbacks.reportMessage(InfrastructureMessages.Error_InvalidMessageFormat({ message }));
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
const code = Number.parseInt(result[2], 16);
|
|
25
|
+
const inputLevel = (result[4] ?? '').toLowerCase();
|
|
26
|
+
const level = (inputLevel == '' || 'disable'.startsWith(inputLevel)) ? 'disable' :
|
|
27
|
+
CompilerError.severityNameToValue(inputLevel);
|
|
28
|
+
const override = { code, level };
|
|
29
|
+
if (!checkMessageOverride(override, callbacks)) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
return override;
|
|
33
|
+
}
|
|
34
|
+
function commandOptionsMessagesToCompilerOptionsMessages(messages, callbacks) {
|
|
35
|
+
if (!messages || !Array.isArray(messages)) {
|
|
36
|
+
return {};
|
|
37
|
+
}
|
|
38
|
+
const result = {};
|
|
39
|
+
for (let message of messages) {
|
|
40
|
+
const override = commandOptionsMessageToCompilerOptionsMessage(message, callbacks);
|
|
41
|
+
if (!override) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
result[override.code] = override.level;
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
export function findMessageDetails(code, callbacks) {
|
|
49
|
+
const namespace = CompilerError.namespace(code);
|
|
50
|
+
if (!messageNamespaceKeys.includes(namespace)) {
|
|
51
|
+
callbacks.reportMessage(InfrastructureMessages.Error_MessageNamespaceNotFound({ code }));
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
const source = messageSources[namespace];
|
|
55
|
+
if (!source) {
|
|
56
|
+
throw new Error(`Unexpected missing namespace for code ${code.toString(16)}`);
|
|
57
|
+
}
|
|
58
|
+
// For the given namespace object, iterate through the members to find the matching value
|
|
59
|
+
const keys = Object.keys(source.class);
|
|
60
|
+
const m = source.class;
|
|
61
|
+
const id = keys.find(key => typeof m[key] == 'number' && CompilerError.error(m[key]) === code);
|
|
62
|
+
if (!id) {
|
|
63
|
+
callbacks.reportMessage(InfrastructureMessages.Error_MessageCodeNotFound({ code }));
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
return { code: m[id], id, module: source.module, class: source.class };
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Verifies that a given message is valid and that the severity is allowed to be
|
|
70
|
+
* modified (Info, Hint and Warn only -- Error and Fatal cannot be modified)
|
|
71
|
+
* @param override
|
|
72
|
+
* @param callbacks
|
|
73
|
+
* @returns true if the message can be overridden
|
|
74
|
+
*/
|
|
75
|
+
function checkMessageOverride(override, callbacks) {
|
|
76
|
+
const details = findMessageDetails(override.code, callbacks);
|
|
77
|
+
if (!details) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
const validSeverityMasks = [CompilerErrorSeverity.Info, CompilerErrorSeverity.Hint, CompilerErrorSeverity.Warn];
|
|
81
|
+
if (!validSeverityMasks.includes(CompilerError.severity(details.code))) {
|
|
82
|
+
callbacks.reportMessage(InfrastructureMessages.Error_MessageCannotBeCoerced({ code: override.code }));
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Maps command line compiler options to the compiler API options.
|
|
89
|
+
* @param options
|
|
90
|
+
* @param callbacks
|
|
91
|
+
* @returns
|
|
92
|
+
*/
|
|
93
|
+
export function commandOptionsToCompilerOptions(options, callbacks) {
|
|
94
|
+
const overrides = commandOptionsMessagesToCompilerOptionsMessages(options.message, callbacks);
|
|
95
|
+
if (!overrides) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
// We don't want to rename command line options to match the precise
|
|
99
|
+
// properties that we have in CompilerOptions, but nor do we want to rename
|
|
100
|
+
// CompilerOptions properties...
|
|
101
|
+
return {
|
|
102
|
+
// CompilerBaseOptions
|
|
103
|
+
logLevel: options.logLevel,
|
|
104
|
+
logFormat: options.logFormat,
|
|
105
|
+
color: options.color,
|
|
106
|
+
// CompilerOptions
|
|
107
|
+
shouldAddCompilerVersion: options.compilerVersion,
|
|
108
|
+
saveDebug: options.debug,
|
|
109
|
+
compilerWarningsAsErrors: options.compilerWarningsAsErrors,
|
|
110
|
+
warnDeprecatedCode: options.warnDeprecatedCode,
|
|
111
|
+
// ExtendedOptions
|
|
112
|
+
forPublishing: options.forPublishing,
|
|
113
|
+
messageOverrides: overrides,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* these are exported only for unit tests, do not use
|
|
118
|
+
*/
|
|
119
|
+
export const unitTestEndpoints = {
|
|
120
|
+
checkMessageOverride,
|
|
121
|
+
commandOptionsMessageToCompilerOptionsMessage
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=extendedCompilerOptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"version":3,"file":"extendedCompilerOptions.js","sourceRoot":"","sources":["../../../src/util/extendedCompilerOptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,48 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
import * as
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* @param
|
|
14
|
-
* @
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
//# debugId=0f4c397f-0f71-5d96-9bdd-26717606132a
|
|
48
|
-
//# sourceMappingURL=fileLists.js.map
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { InfrastructureMessages } from "../messages/infrastructureMessages.js";
|
|
4
|
+
/**
|
|
5
|
+
* Replaces each entry starting with `@` with the content of the file, with one
|
|
6
|
+
* line per file, filenames trimmed, and any lines that are blank or starting
|
|
7
|
+
* with `#` (marking a comment) removed. Note: `#` anywhere else is treated as
|
|
8
|
+
* part of the filename.
|
|
9
|
+
*
|
|
10
|
+
* If any filelist does not exist, reports an error and returns false.
|
|
11
|
+
*
|
|
12
|
+
* @param filenames
|
|
13
|
+
* @param callbacks
|
|
14
|
+
* @returns false on failure
|
|
15
|
+
*/
|
|
16
|
+
export function expandFileLists(filenames, callbacks) {
|
|
17
|
+
let i = 0;
|
|
18
|
+
while (i < filenames.length) {
|
|
19
|
+
if (filenames[i].startsWith('@')) {
|
|
20
|
+
const fileList = expandFileList(filenames[i].substring(1), callbacks);
|
|
21
|
+
if (fileList === null) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
filenames.splice(i, 1, ...fileList);
|
|
25
|
+
i += fileList.length;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
i++;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
export function expandFileList(filename, callbacks) {
|
|
34
|
+
if (!fs.existsSync(filename)) {
|
|
35
|
+
callbacks.reportMessage(InfrastructureMessages.Error_FileDoesNotExist({ filename }));
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
const files = fs.readFileSync(filename, 'utf-8').split('\n').map(item => {
|
|
39
|
+
item = item.trim();
|
|
40
|
+
return item.startsWith('#') || item == ''
|
|
41
|
+
? ''
|
|
42
|
+
: path.resolve(path.dirname(filename), item);
|
|
43
|
+
}).filter(item => item.length > 0);
|
|
44
|
+
return files;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=fileLists.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"version":3,"file":"fileLists.js","sourceRoot":"","sources":["../../../src/util/fileLists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,SAAmB,EAAE,SAA4B;IAC/E,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAM,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE;QAC1B,IAAG,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC/B,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YACtE,IAAG,QAAQ,KAAK,IAAI,EAAE;gBACpB,OAAO,KAAK,CAAC;aACd;YACD,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;YACpC,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC;SACtB;aAAM;YACL,CAAC,EAAE,CAAC;SACL;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,SAA4B;IAC3E,IAAG,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC3B,SAAS,CAAC,aAAa,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC;KACb;IAED,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACtE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE;YACvC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAA;IAChD,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEnC,OAAO,KAAK,CAAC;AACf,CAAC"}
|