@keymanapp/kmc 18.0.41-alpha → 18.0.45-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 +22 -22
- package/build/src/commands/analyze.js +105 -105
- package/build/src/commands/analyze.js.map +1 -1
- package/build/src/commands/build.d.ts +12 -12
- package/build/src/commands/build.js +154 -154
- package/build/src/commands/build.js.map +1 -1
- package/build/src/commands/buildClasses/BuildActivity.d.ts +10 -10
- package/build/src/commands/buildClasses/BuildActivity.js +30 -30
- package/build/src/commands/buildClasses/BuildActivity.js.map +1 -1
- package/build/src/commands/buildClasses/BuildKeyboardInfo.d.ts +10 -10
- package/build/src/commands/buildClasses/BuildKeyboardInfo.js +46 -46
- package/build/src/commands/buildClasses/BuildKeyboardInfo.js.map +1 -1
- package/build/src/commands/buildClasses/BuildKmnKeyboard.d.ts +9 -9
- package/build/src/commands/buildClasses/BuildKmnKeyboard.js +34 -34
- package/build/src/commands/buildClasses/BuildKmnKeyboard.js.map +1 -1
- package/build/src/commands/buildClasses/BuildLdmlKeyboard.d.ts +9 -9
- package/build/src/commands/buildClasses/BuildLdmlKeyboard.js +18 -18
- package/build/src/commands/buildClasses/BuildModel.d.ts +9 -9
- package/build/src/commands/buildClasses/BuildModel.js +12 -12
- package/build/src/commands/buildClasses/BuildModelInfo.d.ts +20 -20
- package/build/src/commands/buildClasses/BuildModelInfo.js +72 -72
- package/build/src/commands/buildClasses/BuildModelInfo.js.map +1 -1
- package/build/src/commands/buildClasses/BuildPackage.d.ts +9 -9
- package/build/src/commands/buildClasses/BuildPackage.js +12 -12
- package/build/src/commands/buildClasses/BuildProject.d.ts +10 -10
- package/build/src/commands/buildClasses/BuildProject.js +115 -115
- package/build/src/commands/buildClasses/BuildProject.js.map +1 -1
- package/build/src/commands/buildClasses/buildActivities.d.ts +6 -6
- package/build/src/commands/buildClasses/buildActivities.js +20 -20
- package/build/src/commands/buildTestData/index.d.ts +1 -1
- package/build/src/commands/buildTestData/index.js +38 -38
- 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.js +42 -42
- package/build/src/commands/buildWindowsPackageInstaller/index.js.map +1 -1
- package/build/src/commands/messageCommand.d.ts +2 -2
- package/build/src/commands/messageCommand.js +208 -208
- package/build/src/commands/messageCommand.js.map +1 -1
- package/build/src/kmc.d.ts +5 -5
- package/build/src/kmc.js +56 -56
- package/build/src/kmc.js.map +1 -1
- package/build/src/kmlmc.d.ts +5 -5
- package/build/src/kmlmc.js +56 -56
- package/build/src/kmlmc.js.map +1 -1
- package/build/src/kmlmp.d.ts +5 -5
- package/build/src/kmlmp.js +45 -45
- package/build/src/kmlmp.js.map +1 -1
- package/build/src/messages/infrastructureMessages.d.ts +151 -151
- package/build/src/messages/infrastructureMessages.js +74 -74
- package/build/src/messages/messageNamespaces.d.ts +7 -7
- package/build/src/messages/messageNamespaces.js +38 -38
- package/build/src/util/NodeCompilerCallbacks.d.ts +43 -43
- package/build/src/util/NodeCompilerCallbacks.js +220 -220
- package/build/src/util/NodeCompilerCallbacks.js.map +1 -1
- package/build/src/util/TestKeymanSentry.d.ts +6 -6
- package/build/src/util/TestKeymanSentry.js +50 -50
- package/build/src/util/TestKeymanSentry.js.map +1 -1
- package/build/src/util/baseOptions.d.ts +20 -20
- package/build/src/util/baseOptions.js +23 -23
- package/build/src/util/calculateSourcePath.d.ts +10 -10
- package/build/src/util/calculateSourcePath.js +17 -17
- package/build/src/util/calculateSourcePath.js.map +1 -1
- package/build/src/util/extendedCompilerOptions.d.ts +56 -56
- package/build/src/util/extendedCompilerOptions.js +122 -122
- package/build/src/util/extendedCompilerOptions.js.map +1 -1
- package/build/src/util/fileLists.d.ts +15 -15
- package/build/src/util/fileLists.js +45 -45
- package/build/src/util/fileLists.js.map +1 -1
- package/build/src/util/getDeveloperBinPath.d.ts +8 -8
- package/build/src/util/getDeveloperBinPath.js +35 -35
- package/build/src/util/getDeveloperBinPath.js.map +1 -1
- package/build/src/util/getLastGitCommitDate.d.ts +7 -7
- package/build/src/util/getLastGitCommitDate.js +43 -43
- package/build/src/util/getLastGitCommitDate.js.map +1 -1
- package/build/src/util/kmcSentryOptions.d.ts +7 -7
- package/build/src/util/kmcSentryOptions.js +19 -19
- package/build/src/util/kmcSentryOptions.js.map +1 -1
- package/build/src/util/projectLoader.d.ts +3 -3
- package/build/src/util/projectLoader.js +50 -50
- package/build/src/util/projectLoader.js.map +1 -1
- package/build/src/util/projectRunner.d.ts +2 -2
- package/build/src/util/projectRunner.js +26 -26
- package/build/src/util/projectRunner.js.map +1 -1
- package/build/src/util/sysexits.d.ts +9 -9
- package/build/src/util/sysexits.js +6 -6
- package/package.json +12 -12
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import { CompilerCallbacks, CompilerEvent, CompilerPathCallbacks, CompilerFileSystemCallbacks, CompilerCallbackOptions } from '@keymanapp/common-types';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
/**
|
|
4
|
-
* Concrete implementation for CLI use
|
|
5
|
-
*/
|
|
6
|
-
export declare class NodeCompilerCallbacks implements CompilerCallbacks {
|
|
7
|
-
private options;
|
|
8
|
-
messages: CompilerEvent[];
|
|
9
|
-
messageCount: number;
|
|
10
|
-
messageFilename: string;
|
|
11
|
-
constructor(options: CompilerCallbackOptions);
|
|
12
|
-
clear(): void;
|
|
13
|
-
/**
|
|
14
|
-
* Returns true if any message in the log is a Fatal, Error, or if we are
|
|
15
|
-
* treating warnings as errors, a Warning. The warning option will be taken
|
|
16
|
-
* from the CompilerOptions passed to the constructor, or the parameter, to
|
|
17
|
-
* allow for per-file overrides (as seen with projects, for example).
|
|
18
|
-
* @param compilerWarningsAsErrors
|
|
19
|
-
* @returns
|
|
20
|
-
*/
|
|
21
|
-
hasFailureMessage(compilerWarningsAsErrors?: boolean): boolean;
|
|
22
|
-
hasMessage(code: number): boolean;
|
|
23
|
-
private verifyFilenameConsistency;
|
|
24
|
-
loadFile(filename: string): Uint8Array;
|
|
25
|
-
fileSize(filename: string): number;
|
|
26
|
-
get path(): CompilerPathCallbacks;
|
|
27
|
-
get fs(): CompilerFileSystemCallbacks;
|
|
28
|
-
reportMessage(event: CompilerEvent): void;
|
|
29
|
-
private printMessage;
|
|
30
|
-
private printTsvMessage;
|
|
31
|
-
private printFormattedMessage;
|
|
32
|
-
/**
|
|
33
|
-
* We treat a few certain infrastructure messages with special colours
|
|
34
|
-
* @param event
|
|
35
|
-
* @returns
|
|
36
|
-
*/
|
|
37
|
-
messageSpecialColor(event: CompilerEvent): chalk.Chalk & {
|
|
38
|
-
supportsColor: chalk.ColorSupport;
|
|
39
|
-
};
|
|
40
|
-
debug(msg: string): void;
|
|
41
|
-
fileExists(filename: string): boolean;
|
|
42
|
-
resolveFilename(baseFilename: string, filename: string): string;
|
|
43
|
-
}
|
|
1
|
+
import { CompilerCallbacks, CompilerEvent, CompilerPathCallbacks, CompilerFileSystemCallbacks, CompilerCallbackOptions } from '@keymanapp/common-types';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
/**
|
|
4
|
+
* Concrete implementation for CLI use
|
|
5
|
+
*/
|
|
6
|
+
export declare class NodeCompilerCallbacks implements CompilerCallbacks {
|
|
7
|
+
private options;
|
|
8
|
+
messages: CompilerEvent[];
|
|
9
|
+
messageCount: number;
|
|
10
|
+
messageFilename: string;
|
|
11
|
+
constructor(options: CompilerCallbackOptions);
|
|
12
|
+
clear(): void;
|
|
13
|
+
/**
|
|
14
|
+
* Returns true if any message in the log is a Fatal, Error, or if we are
|
|
15
|
+
* treating warnings as errors, a Warning. The warning option will be taken
|
|
16
|
+
* from the CompilerOptions passed to the constructor, or the parameter, to
|
|
17
|
+
* allow for per-file overrides (as seen with projects, for example).
|
|
18
|
+
* @param compilerWarningsAsErrors
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
hasFailureMessage(compilerWarningsAsErrors?: boolean): boolean;
|
|
22
|
+
hasMessage(code: number): boolean;
|
|
23
|
+
private verifyFilenameConsistency;
|
|
24
|
+
loadFile(filename: string): Uint8Array;
|
|
25
|
+
fileSize(filename: string): number;
|
|
26
|
+
get path(): CompilerPathCallbacks;
|
|
27
|
+
get fs(): CompilerFileSystemCallbacks;
|
|
28
|
+
reportMessage(event: CompilerEvent): void;
|
|
29
|
+
private printMessage;
|
|
30
|
+
private printTsvMessage;
|
|
31
|
+
private printFormattedMessage;
|
|
32
|
+
/**
|
|
33
|
+
* We treat a few certain infrastructure messages with special colours
|
|
34
|
+
* @param event
|
|
35
|
+
* @returns
|
|
36
|
+
*/
|
|
37
|
+
messageSpecialColor(event: CompilerEvent): chalk.Chalk & {
|
|
38
|
+
supportsColor: chalk.ColorSupport;
|
|
39
|
+
};
|
|
40
|
+
debug(msg: string): void;
|
|
41
|
+
fileExists(filename: string): boolean;
|
|
42
|
+
resolveFilename(baseFilename: string, filename: string): string;
|
|
43
|
+
}
|
|
44
44
|
//# sourceMappingURL=NodeCompilerCallbacks.d.ts.map
|
|
@@ -1,221 +1,221 @@
|
|
|
1
|
-
import * as fs from 'fs';
|
|
2
|
-
import * as path from 'path';
|
|
3
|
-
import { platform } from 'os';
|
|
4
|
-
import { compilerLogLevelToSeverity, CompilerErrorSeverity, CompilerError, CompilerFileCallbacks } from '@keymanapp/common-types';
|
|
5
|
-
import { InfrastructureMessages } from '../messages/infrastructureMessages.js';
|
|
6
|
-
import chalk from 'chalk';
|
|
7
|
-
import supportsColor from 'supports-color';
|
|
8
|
-
import { KeymanSentry } from '@keymanapp/developer-utils';
|
|
9
|
-
const color = chalk.default;
|
|
10
|
-
const severityColors = {
|
|
11
|
-
[CompilerErrorSeverity.Info]: color.reset,
|
|
12
|
-
[CompilerErrorSeverity.Hint]: color.blueBright,
|
|
13
|
-
[CompilerErrorSeverity.Warn]: color.hex('FFA500'),
|
|
14
|
-
[CompilerErrorSeverity.Error]: color.redBright,
|
|
15
|
-
[CompilerErrorSeverity.Fatal]: color.redBright,
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Maximum messages that will be emitted before suppressing further messages.
|
|
19
|
-
* We may in the future make this user configurable?
|
|
20
|
-
*/
|
|
21
|
-
const MaxMessagesDefault = 100;
|
|
22
|
-
/**
|
|
23
|
-
* Concrete implementation for CLI use
|
|
24
|
-
*/
|
|
25
|
-
export class NodeCompilerCallbacks {
|
|
26
|
-
options;
|
|
27
|
-
/* NodeCompilerCallbacks */
|
|
28
|
-
messages = [];
|
|
29
|
-
messageCount = 0;
|
|
30
|
-
messageFilename = '';
|
|
31
|
-
constructor(options) {
|
|
32
|
-
this.options = options;
|
|
33
|
-
color.enabled = this.options.color ?? (supportsColor.stdout ? supportsColor.stdout.hasBasic : false);
|
|
34
|
-
}
|
|
35
|
-
clear() {
|
|
36
|
-
this.messages = [];
|
|
37
|
-
this.messageCount = 0;
|
|
38
|
-
this.messageFilename = '';
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Returns true if any message in the log is a Fatal, Error, or if we are
|
|
42
|
-
* treating warnings as errors, a Warning. The warning option will be taken
|
|
43
|
-
* from the CompilerOptions passed to the constructor, or the parameter, to
|
|
44
|
-
* allow for per-file overrides (as seen with projects, for example).
|
|
45
|
-
* @param compilerWarningsAsErrors
|
|
46
|
-
* @returns
|
|
47
|
-
*/
|
|
48
|
-
hasFailureMessage(compilerWarningsAsErrors) {
|
|
49
|
-
return CompilerFileCallbacks.hasFailureMessage(this.messages,
|
|
50
|
-
// parameter overrides global option
|
|
51
|
-
compilerWarningsAsErrors ?? this.options.compilerWarningsAsErrors);
|
|
52
|
-
}
|
|
53
|
-
hasMessage(code) {
|
|
54
|
-
return this.messages.find((item) => item.code == code) === undefined ? false : true;
|
|
55
|
-
}
|
|
56
|
-
verifyFilenameConsistency(originalFilename) {
|
|
57
|
-
if (fs.existsSync(originalFilename)) {
|
|
58
|
-
// Note, we only check this if the file exists, because
|
|
59
|
-
// if it is not found, that will be returned as an error
|
|
60
|
-
// from loadFile anyway.
|
|
61
|
-
let filename = fs.realpathSync(originalFilename);
|
|
62
|
-
let nativeFilename = fs.realpathSync.native(filename);
|
|
63
|
-
if (platform() == 'win32' && originalFilename.match(/^.:/)) {
|
|
64
|
-
// When an absolute path is passed in, it includes a drive letter.
|
|
65
|
-
// Drive letter case can differ but we don't care about that on win32.
|
|
66
|
-
// Typically absolute paths only appear for input parameters, as absolute
|
|
67
|
-
// paths are flagged as warnings when they appear in source files anyway.
|
|
68
|
-
// Upper casing the drive letter just avoids the issue.
|
|
69
|
-
filename = filename[0].toUpperCase() + filename.substring(1);
|
|
70
|
-
nativeFilename = nativeFilename[0].toUpperCase() + nativeFilename.substring(1);
|
|
71
|
-
}
|
|
72
|
-
if (filename != nativeFilename) {
|
|
73
|
-
this.reportMessage(InfrastructureMessages.Hint_FilenameHasDifferingCase({
|
|
74
|
-
reference: path.basename(originalFilename),
|
|
75
|
-
filename: path.basename(nativeFilename)
|
|
76
|
-
}));
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
/* CompilerCallbacks */
|
|
81
|
-
loadFile(filename) {
|
|
82
|
-
this.verifyFilenameConsistency(filename);
|
|
83
|
-
try {
|
|
84
|
-
return fs.readFileSync(filename);
|
|
85
|
-
}
|
|
86
|
-
catch (e) {
|
|
87
|
-
if (e.code === 'ENOENT') {
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
throw e;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
fileSize(filename) {
|
|
96
|
-
return fs.statSync(filename)?.size;
|
|
97
|
-
}
|
|
98
|
-
get path() {
|
|
99
|
-
return path;
|
|
100
|
-
}
|
|
101
|
-
get fs() {
|
|
102
|
-
return fs;
|
|
103
|
-
}
|
|
104
|
-
reportMessage(event) {
|
|
105
|
-
if (!event.filename) {
|
|
106
|
-
event.filename = this.messageFilename;
|
|
107
|
-
}
|
|
108
|
-
if (this.messageFilename != event.filename) {
|
|
109
|
-
// Reset max message limit when a new file is being processed
|
|
110
|
-
this.messageFilename = event.filename;
|
|
111
|
-
this.messageCount = 0;
|
|
112
|
-
}
|
|
113
|
-
const disable = CompilerFileCallbacks.applyMessageOverridesToEvent(event, this.options.messageOverrides);
|
|
114
|
-
this.messages.push({ ...event });
|
|
115
|
-
// report fatal errors to Sentry, but don't abort; note, it won't be
|
|
116
|
-
// reported if user has disabled the Sentry setting
|
|
117
|
-
if (CompilerError.severity(event.code) == CompilerErrorSeverity.Fatal) {
|
|
118
|
-
// this is async so returns a Promise, we'll let it resolve in its own
|
|
119
|
-
// time, and it will emit a message to stderr with details at that time
|
|
120
|
-
KeymanSentry.reportException(event.exceptionVar ?? event.message, false);
|
|
121
|
-
}
|
|
122
|
-
if (disable || CompilerError.severity(event.code) < compilerLogLevelToSeverity[this.options.logLevel]) {
|
|
123
|
-
// collect messages but don't print to console
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
// We don't use this.messages.length because we only want to count visible
|
|
127
|
-
// messages, and there's no point in recalculating the total for every
|
|
128
|
-
// message emitted.
|
|
129
|
-
this.messageCount++;
|
|
130
|
-
if (this.messageCount > MaxMessagesDefault) {
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
if (this.messageCount == MaxMessagesDefault) {
|
|
134
|
-
// We've hit our event limit so we'll suppress further messages, and emit
|
|
135
|
-
// our little informational message so users know what's going on. Note
|
|
136
|
-
// that this message will not be included in the this.messages array, and
|
|
137
|
-
// that will continue to collect all messages; this only affects the
|
|
138
|
-
// console emission of messages.
|
|
139
|
-
event = InfrastructureMessages.Info_TooManyMessages({ count: MaxMessagesDefault });
|
|
140
|
-
event.filename = this.messageFilename;
|
|
141
|
-
}
|
|
142
|
-
this.printMessage(event);
|
|
143
|
-
}
|
|
144
|
-
printMessage(event) {
|
|
145
|
-
if (this.options.logFormat == 'tsv') {
|
|
146
|
-
this.printTsvMessage(event);
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
this.printFormattedMessage(event);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
printTsvMessage(event) {
|
|
153
|
-
process.stdout.write([
|
|
154
|
-
CompilerError.formatFilename(event.filename, { fullPath: true, forwardSlashes: false }),
|
|
155
|
-
CompilerError.formatLine(event.line),
|
|
156
|
-
CompilerError.formatSeverity(event.code),
|
|
157
|
-
CompilerError.formatCode(event.code),
|
|
158
|
-
CompilerError.formatMessage(event.message)
|
|
159
|
-
].join('\t') + '\n');
|
|
160
|
-
}
|
|
161
|
-
printFormattedMessage(event) {
|
|
162
|
-
const severityColor = severityColors[CompilerError.severity(event.code)] ?? color.reset;
|
|
163
|
-
const messageColor = this.messageSpecialColor(event) ?? color.reset;
|
|
164
|
-
process.stdout.write((event.filename
|
|
165
|
-
? color.cyan(CompilerError.formatFilename(event.filename)) +
|
|
166
|
-
(event.line ? ':' + color.yellowBright(CompilerError.formatLine(event.line)) : '') + ' - '
|
|
167
|
-
: '') +
|
|
168
|
-
severityColor(CompilerError.formatSeverity(event.code)) + ' ' +
|
|
169
|
-
color.grey(CompilerError.formatCode(event.code)) + ': ' +
|
|
170
|
-
messageColor(CompilerError.formatMessage(event.message)) + '\n');
|
|
171
|
-
if (event.code == InfrastructureMessages.INFO_ProjectBuiltSuccessfully) {
|
|
172
|
-
// Special case: we'll add a blank line after project builds
|
|
173
|
-
process.stdout.write('\n');
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* We treat a few certain infrastructure messages with special colours
|
|
178
|
-
* @param event
|
|
179
|
-
* @returns
|
|
180
|
-
*/
|
|
181
|
-
messageSpecialColor(event) {
|
|
182
|
-
switch (event.code) {
|
|
183
|
-
case InfrastructureMessages.INFO_BuildingFile:
|
|
184
|
-
return color.whiteBright;
|
|
185
|
-
case InfrastructureMessages.INFO_FileNotBuiltSuccessfully:
|
|
186
|
-
case InfrastructureMessages.INFO_ProjectNotBuiltSuccessfully:
|
|
187
|
-
return color.red;
|
|
188
|
-
case InfrastructureMessages.INFO_FileBuiltSuccessfully:
|
|
189
|
-
case InfrastructureMessages.INFO_ProjectBuiltSuccessfully:
|
|
190
|
-
return color.green;
|
|
191
|
-
}
|
|
192
|
-
return null;
|
|
193
|
-
}
|
|
194
|
-
debug(msg) {
|
|
195
|
-
if (this.options.logLevel == 'debug') {
|
|
196
|
-
console.debug(msg);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
fileExists(filename) {
|
|
200
|
-
return fs.existsSync(filename);
|
|
201
|
-
}
|
|
202
|
-
resolveFilename(baseFilename, filename) {
|
|
203
|
-
const basePath = baseFilename.endsWith('/') || baseFilename.endsWith('\\') ?
|
|
204
|
-
baseFilename :
|
|
205
|
-
path.dirname(baseFilename);
|
|
206
|
-
// Transform separators to platform separators -- we are agnostic
|
|
207
|
-
// in our use here but path prefers files may use
|
|
208
|
-
// either / or \, although older kps files were always \.
|
|
209
|
-
if (path.sep == '/') {
|
|
210
|
-
filename = filename.replace(/\\/g, '/');
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
filename = filename.replace(/\//g, '\\');
|
|
214
|
-
}
|
|
215
|
-
if (!path.isAbsolute(filename)) {
|
|
216
|
-
filename = path.resolve(basePath, filename);
|
|
217
|
-
}
|
|
218
|
-
return filename;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { platform } from 'os';
|
|
4
|
+
import { compilerLogLevelToSeverity, CompilerErrorSeverity, CompilerError, CompilerFileCallbacks } from '@keymanapp/common-types';
|
|
5
|
+
import { InfrastructureMessages } from '../messages/infrastructureMessages.js';
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import supportsColor from 'supports-color';
|
|
8
|
+
import { KeymanSentry } from '@keymanapp/developer-utils';
|
|
9
|
+
const color = chalk.default;
|
|
10
|
+
const severityColors = {
|
|
11
|
+
[CompilerErrorSeverity.Info]: color.reset,
|
|
12
|
+
[CompilerErrorSeverity.Hint]: color.blueBright,
|
|
13
|
+
[CompilerErrorSeverity.Warn]: color.hex('FFA500'), // orange
|
|
14
|
+
[CompilerErrorSeverity.Error]: color.redBright,
|
|
15
|
+
[CompilerErrorSeverity.Fatal]: color.redBright,
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Maximum messages that will be emitted before suppressing further messages.
|
|
19
|
+
* We may in the future make this user configurable?
|
|
20
|
+
*/
|
|
21
|
+
const MaxMessagesDefault = 100;
|
|
22
|
+
/**
|
|
23
|
+
* Concrete implementation for CLI use
|
|
24
|
+
*/
|
|
25
|
+
export class NodeCompilerCallbacks {
|
|
26
|
+
options;
|
|
27
|
+
/* NodeCompilerCallbacks */
|
|
28
|
+
messages = [];
|
|
29
|
+
messageCount = 0;
|
|
30
|
+
messageFilename = '';
|
|
31
|
+
constructor(options) {
|
|
32
|
+
this.options = options;
|
|
33
|
+
color.enabled = this.options.color ?? (supportsColor.stdout ? supportsColor.stdout.hasBasic : false);
|
|
34
|
+
}
|
|
35
|
+
clear() {
|
|
36
|
+
this.messages = [];
|
|
37
|
+
this.messageCount = 0;
|
|
38
|
+
this.messageFilename = '';
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Returns true if any message in the log is a Fatal, Error, or if we are
|
|
42
|
+
* treating warnings as errors, a Warning. The warning option will be taken
|
|
43
|
+
* from the CompilerOptions passed to the constructor, or the parameter, to
|
|
44
|
+
* allow for per-file overrides (as seen with projects, for example).
|
|
45
|
+
* @param compilerWarningsAsErrors
|
|
46
|
+
* @returns
|
|
47
|
+
*/
|
|
48
|
+
hasFailureMessage(compilerWarningsAsErrors) {
|
|
49
|
+
return CompilerFileCallbacks.hasFailureMessage(this.messages,
|
|
50
|
+
// parameter overrides global option
|
|
51
|
+
compilerWarningsAsErrors ?? this.options.compilerWarningsAsErrors);
|
|
52
|
+
}
|
|
53
|
+
hasMessage(code) {
|
|
54
|
+
return this.messages.find((item) => item.code == code) === undefined ? false : true;
|
|
55
|
+
}
|
|
56
|
+
verifyFilenameConsistency(originalFilename) {
|
|
57
|
+
if (fs.existsSync(originalFilename)) {
|
|
58
|
+
// Note, we only check this if the file exists, because
|
|
59
|
+
// if it is not found, that will be returned as an error
|
|
60
|
+
// from loadFile anyway.
|
|
61
|
+
let filename = fs.realpathSync(originalFilename);
|
|
62
|
+
let nativeFilename = fs.realpathSync.native(filename);
|
|
63
|
+
if (platform() == 'win32' && originalFilename.match(/^.:/)) {
|
|
64
|
+
// When an absolute path is passed in, it includes a drive letter.
|
|
65
|
+
// Drive letter case can differ but we don't care about that on win32.
|
|
66
|
+
// Typically absolute paths only appear for input parameters, as absolute
|
|
67
|
+
// paths are flagged as warnings when they appear in source files anyway.
|
|
68
|
+
// Upper casing the drive letter just avoids the issue.
|
|
69
|
+
filename = filename[0].toUpperCase() + filename.substring(1);
|
|
70
|
+
nativeFilename = nativeFilename[0].toUpperCase() + nativeFilename.substring(1);
|
|
71
|
+
}
|
|
72
|
+
if (filename != nativeFilename) {
|
|
73
|
+
this.reportMessage(InfrastructureMessages.Hint_FilenameHasDifferingCase({
|
|
74
|
+
reference: path.basename(originalFilename),
|
|
75
|
+
filename: path.basename(nativeFilename)
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/* CompilerCallbacks */
|
|
81
|
+
loadFile(filename) {
|
|
82
|
+
this.verifyFilenameConsistency(filename);
|
|
83
|
+
try {
|
|
84
|
+
return fs.readFileSync(filename);
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
if (e.code === 'ENOENT') {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
throw e;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
fileSize(filename) {
|
|
96
|
+
return fs.statSync(filename)?.size;
|
|
97
|
+
}
|
|
98
|
+
get path() {
|
|
99
|
+
return path;
|
|
100
|
+
}
|
|
101
|
+
get fs() {
|
|
102
|
+
return fs;
|
|
103
|
+
}
|
|
104
|
+
reportMessage(event) {
|
|
105
|
+
if (!event.filename) {
|
|
106
|
+
event.filename = this.messageFilename;
|
|
107
|
+
}
|
|
108
|
+
if (this.messageFilename != event.filename) {
|
|
109
|
+
// Reset max message limit when a new file is being processed
|
|
110
|
+
this.messageFilename = event.filename;
|
|
111
|
+
this.messageCount = 0;
|
|
112
|
+
}
|
|
113
|
+
const disable = CompilerFileCallbacks.applyMessageOverridesToEvent(event, this.options.messageOverrides);
|
|
114
|
+
this.messages.push({ ...event });
|
|
115
|
+
// report fatal errors to Sentry, but don't abort; note, it won't be
|
|
116
|
+
// reported if user has disabled the Sentry setting
|
|
117
|
+
if (CompilerError.severity(event.code) == CompilerErrorSeverity.Fatal) {
|
|
118
|
+
// this is async so returns a Promise, we'll let it resolve in its own
|
|
119
|
+
// time, and it will emit a message to stderr with details at that time
|
|
120
|
+
KeymanSentry.reportException(event.exceptionVar ?? event.message, false);
|
|
121
|
+
}
|
|
122
|
+
if (disable || CompilerError.severity(event.code) < compilerLogLevelToSeverity[this.options.logLevel]) {
|
|
123
|
+
// collect messages but don't print to console
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
// We don't use this.messages.length because we only want to count visible
|
|
127
|
+
// messages, and there's no point in recalculating the total for every
|
|
128
|
+
// message emitted.
|
|
129
|
+
this.messageCount++;
|
|
130
|
+
if (this.messageCount > MaxMessagesDefault) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (this.messageCount == MaxMessagesDefault) {
|
|
134
|
+
// We've hit our event limit so we'll suppress further messages, and emit
|
|
135
|
+
// our little informational message so users know what's going on. Note
|
|
136
|
+
// that this message will not be included in the this.messages array, and
|
|
137
|
+
// that will continue to collect all messages; this only affects the
|
|
138
|
+
// console emission of messages.
|
|
139
|
+
event = InfrastructureMessages.Info_TooManyMessages({ count: MaxMessagesDefault });
|
|
140
|
+
event.filename = this.messageFilename;
|
|
141
|
+
}
|
|
142
|
+
this.printMessage(event);
|
|
143
|
+
}
|
|
144
|
+
printMessage(event) {
|
|
145
|
+
if (this.options.logFormat == 'tsv') {
|
|
146
|
+
this.printTsvMessage(event);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
this.printFormattedMessage(event);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
printTsvMessage(event) {
|
|
153
|
+
process.stdout.write([
|
|
154
|
+
CompilerError.formatFilename(event.filename, { fullPath: true, forwardSlashes: false }),
|
|
155
|
+
CompilerError.formatLine(event.line),
|
|
156
|
+
CompilerError.formatSeverity(event.code),
|
|
157
|
+
CompilerError.formatCode(event.code),
|
|
158
|
+
CompilerError.formatMessage(event.message)
|
|
159
|
+
].join('\t') + '\n');
|
|
160
|
+
}
|
|
161
|
+
printFormattedMessage(event) {
|
|
162
|
+
const severityColor = severityColors[CompilerError.severity(event.code)] ?? color.reset;
|
|
163
|
+
const messageColor = this.messageSpecialColor(event) ?? color.reset;
|
|
164
|
+
process.stdout.write((event.filename
|
|
165
|
+
? color.cyan(CompilerError.formatFilename(event.filename)) +
|
|
166
|
+
(event.line ? ':' + color.yellowBright(CompilerError.formatLine(event.line)) : '') + ' - '
|
|
167
|
+
: '') +
|
|
168
|
+
severityColor(CompilerError.formatSeverity(event.code)) + ' ' +
|
|
169
|
+
color.grey(CompilerError.formatCode(event.code)) + ': ' +
|
|
170
|
+
messageColor(CompilerError.formatMessage(event.message)) + '\n');
|
|
171
|
+
if (event.code == InfrastructureMessages.INFO_ProjectBuiltSuccessfully) {
|
|
172
|
+
// Special case: we'll add a blank line after project builds
|
|
173
|
+
process.stdout.write('\n');
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* We treat a few certain infrastructure messages with special colours
|
|
178
|
+
* @param event
|
|
179
|
+
* @returns
|
|
180
|
+
*/
|
|
181
|
+
messageSpecialColor(event) {
|
|
182
|
+
switch (event.code) {
|
|
183
|
+
case InfrastructureMessages.INFO_BuildingFile:
|
|
184
|
+
return color.whiteBright;
|
|
185
|
+
case InfrastructureMessages.INFO_FileNotBuiltSuccessfully:
|
|
186
|
+
case InfrastructureMessages.INFO_ProjectNotBuiltSuccessfully:
|
|
187
|
+
return color.red;
|
|
188
|
+
case InfrastructureMessages.INFO_FileBuiltSuccessfully:
|
|
189
|
+
case InfrastructureMessages.INFO_ProjectBuiltSuccessfully:
|
|
190
|
+
return color.green;
|
|
191
|
+
}
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
194
|
+
debug(msg) {
|
|
195
|
+
if (this.options.logLevel == 'debug') {
|
|
196
|
+
console.debug(msg);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
fileExists(filename) {
|
|
200
|
+
return fs.existsSync(filename);
|
|
201
|
+
}
|
|
202
|
+
resolveFilename(baseFilename, filename) {
|
|
203
|
+
const basePath = baseFilename.endsWith('/') || baseFilename.endsWith('\\') ?
|
|
204
|
+
baseFilename :
|
|
205
|
+
path.dirname(baseFilename);
|
|
206
|
+
// Transform separators to platform separators -- we are agnostic
|
|
207
|
+
// in our use here but path prefers files may use
|
|
208
|
+
// either / or \, although older kps files were always \.
|
|
209
|
+
if (path.sep == '/') {
|
|
210
|
+
filename = filename.replace(/\\/g, '/');
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
filename = filename.replace(/\//g, '\\');
|
|
214
|
+
}
|
|
215
|
+
if (!path.isAbsolute(filename)) {
|
|
216
|
+
filename = path.resolve(basePath, filename);
|
|
217
|
+
}
|
|
218
|
+
return filename;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
221
|
//# sourceMappingURL=NodeCompilerCallbacks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeCompilerCallbacks.js","sourceRoot":"","sources":["../../../src/util/NodeCompilerCallbacks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAEE,0BAA0B,EAAE,qBAAqB,EACjD,aAAa,EAEb,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;AAC5B,MAAM,cAAc,GAAoD;IACtE,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK;IACzC,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,UAAU;IAC9C,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"NodeCompilerCallbacks.js","sourceRoot":"","sources":["../../../src/util/NodeCompilerCallbacks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { SentryNodeOptions } from '@keymanapp/developer-utils';
|
|
2
|
-
export declare class TestKeymanSentry {
|
|
3
|
-
static isTestCL(): boolean;
|
|
4
|
-
static runTestIfCLRequested(options?: SentryNodeOptions): Promise<void>;
|
|
5
|
-
static test(options?: SentryNodeOptions): Promise<void>;
|
|
6
|
-
}
|
|
1
|
+
import { SentryNodeOptions } from '@keymanapp/developer-utils';
|
|
2
|
+
export declare class TestKeymanSentry {
|
|
3
|
+
static isTestCL(): boolean;
|
|
4
|
+
static runTestIfCLRequested(options?: SentryNodeOptions): Promise<void>;
|
|
5
|
+
static test(options?: SentryNodeOptions): Promise<void>;
|
|
6
|
+
}
|
|
7
7
|
//# sourceMappingURL=TestKeymanSentry.d.ts.map
|