@keymanapp/kmc 17.0.154-alpha → 17.0.156-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 +5 -0
- package/build/src/commands/analyze.d.ts.map +1 -0
- package/build/src/commands/analyze.js +101 -0
- package/build/src/commands/analyze.js.map +1 -0
- package/build/src/commands/build.d.ts +5 -3
- package/build/src/commands/build.d.ts.map +1 -1
- package/build/src/commands/build.js +126 -69
- package/build/src/commands/build.js.map +1 -1
- package/build/src/commands/buildClasses/BuildActivity.d.ts +12 -0
- package/build/src/commands/buildClasses/BuildActivity.d.ts.map +1 -0
- package/build/src/commands/buildClasses/BuildActivity.js +12 -0
- package/build/src/commands/buildClasses/BuildActivity.js.map +1 -0
- package/build/src/commands/buildClasses/BuildKeyboardInfo.d.ts +12 -0
- package/build/src/commands/buildClasses/BuildKeyboardInfo.d.ts.map +1 -0
- package/build/src/commands/buildClasses/BuildKeyboardInfo.js +77 -0
- package/build/src/commands/buildClasses/BuildKeyboardInfo.js.map +1 -0
- package/build/src/commands/buildClasses/BuildKmnKeyboard.d.ts +12 -0
- package/build/src/commands/buildClasses/BuildKmnKeyboard.d.ts.map +1 -0
- package/build/src/commands/{build → buildClasses}/BuildKmnKeyboard.js +41 -44
- package/build/src/commands/buildClasses/BuildKmnKeyboard.js.map +1 -0
- package/build/src/commands/buildClasses/BuildLdmlKeyboard.d.ts +12 -0
- package/build/src/commands/buildClasses/BuildLdmlKeyboard.d.ts.map +1 -0
- package/build/src/commands/{build → buildClasses}/BuildLdmlKeyboard.js +80 -80
- package/build/src/commands/buildClasses/BuildLdmlKeyboard.js.map +1 -0
- package/build/src/commands/buildClasses/BuildModel.d.ts +12 -0
- package/build/src/commands/buildClasses/BuildModel.d.ts.map +1 -0
- package/build/src/commands/{build → buildClasses}/BuildModel.js +31 -29
- package/build/src/commands/buildClasses/BuildModel.js.map +1 -0
- package/build/src/commands/buildClasses/BuildModelInfo.d.ts +22 -0
- package/build/src/commands/buildClasses/BuildModelInfo.d.ts.map +1 -0
- package/build/src/commands/buildClasses/BuildModelInfo.js +73 -0
- package/build/src/commands/buildClasses/BuildModelInfo.js.map +1 -0
- package/build/src/commands/buildClasses/BuildPackage.d.ts +12 -0
- package/build/src/commands/buildClasses/BuildPackage.d.ts.map +1 -0
- package/build/src/commands/{build → buildClasses}/BuildPackage.js +39 -37
- package/build/src/commands/buildClasses/BuildPackage.js.map +1 -0
- package/build/src/commands/buildClasses/BuildProject.d.ts +12 -0
- package/build/src/commands/buildClasses/BuildProject.d.ts.map +1 -0
- package/build/src/commands/buildClasses/BuildProject.js +84 -0
- package/build/src/commands/buildClasses/BuildProject.js.map +1 -0
- package/build/src/commands/buildClasses/buildActivities.d.ts +5 -0
- package/build/src/commands/buildClasses/buildActivities.d.ts.map +1 -0
- package/build/src/commands/{build → buildClasses}/buildActivities.js +22 -16
- package/build/src/commands/buildClasses/buildActivities.js.map +1 -0
- package/build/src/commands/buildTestData/index.d.ts +5 -5
- package/build/src/commands/buildTestData/index.d.ts.map +1 -1
- package/build/src/commands/buildTestData/index.js +39 -36
- package/build/src/commands/buildTestData/index.js.map +1 -1
- package/build/src/commands/buildTestData.d.ts +5 -3
- package/build/src/commands/buildTestData.d.ts.map +1 -1
- package/build/src/commands/buildTestData.js +11 -9
- package/build/src/commands/buildTestData.js.map +1 -1
- package/build/src/kmc.d.ts +8 -6
- package/build/src/kmc.d.ts.map +1 -1
- package/build/src/kmc.js +43 -39
- package/build/src/kmc.js.map +1 -1
- package/build/src/kmlmc.d.ts +8 -6
- package/build/src/kmlmc.d.ts.map +1 -1
- package/build/src/kmlmc.js +52 -50
- package/build/src/kmlmc.js.map +1 -1
- package/build/src/kmlmi.d.ts +8 -6
- package/build/src/kmlmi.d.ts.map +1 -1
- package/build/src/kmlmi.js +74 -73
- package/build/src/kmlmi.js.map +1 -1
- package/build/src/kmlmp.d.ts +8 -6
- package/build/src/kmlmp.d.ts.map +1 -1
- package/build/src/kmlmp.js +59 -57
- package/build/src/kmlmp.js.map +1 -1
- package/build/src/messages/messages.d.ts +90 -39
- package/build/src/messages/messages.d.ts.map +1 -1
- package/build/src/messages/messages.js +47 -28
- package/build/src/messages/messages.js.map +1 -1
- package/build/src/util/KeymanSentry.d.ts +11 -0
- package/build/src/util/KeymanSentry.d.ts.map +1 -0
- package/build/src/util/KeymanSentry.js +114 -0
- package/build/src/util/KeymanSentry.js.map +1 -0
- package/build/src/util/NodeCompilerCallbacks.d.ts +43 -0
- package/build/src/util/NodeCompilerCallbacks.d.ts.map +1 -0
- package/build/src/util/NodeCompilerCallbacks.js +184 -0
- package/build/src/util/NodeCompilerCallbacks.js.map +1 -0
- package/build/src/util/baseOptions.d.ts +11 -0
- package/build/src/util/baseOptions.d.ts.map +1 -0
- package/build/src/util/baseOptions.js +34 -0
- package/build/src/util/baseOptions.js.map +1 -0
- package/build/src/util/calculateSourcePath.d.ts +13 -0
- package/build/src/util/calculateSourcePath.d.ts.map +1 -0
- package/build/src/util/calculateSourcePath.js +20 -0
- package/build/src/util/calculateSourcePath.js.map +1 -0
- package/build/src/util/escapeRegExp.d.ts +4 -2
- package/build/src/util/escapeRegExp.d.ts.map +1 -1
- package/build/src/util/escapeRegExp.js +8 -6
- package/build/src/util/escapeRegExp.js.map +1 -1
- package/build/src/util/fileLists.d.ts +18 -0
- package/build/src/util/fileLists.d.ts.map +1 -0
- package/build/src/util/fileLists.js +48 -0
- package/build/src/util/fileLists.js.map +1 -0
- package/build/src/util/getDeveloperBinPath.d.ts +11 -9
- package/build/src/util/getDeveloperBinPath.d.ts.map +1 -1
- package/build/src/util/getDeveloperBinPath.js +38 -36
- package/build/src/util/getDeveloperBinPath.js.map +1 -1
- package/build/src/util/projectLoader.d.ts +6 -0
- package/build/src/util/projectLoader.d.ts.map +1 -0
- package/build/src/util/projectLoader.js +48 -0
- package/build/src/util/projectLoader.js.map +1 -0
- package/build/src/util/projectRunner.d.ts +5 -0
- package/build/src/util/projectRunner.d.ts.map +1 -0
- package/build/src/util/projectRunner.js +29 -0
- package/build/src/util/projectRunner.js.map +1 -0
- package/build/src/util/spawnAwait.d.ts +4 -0
- package/build/src/util/spawnAwait.d.ts.map +1 -0
- package/build/src/util/spawnAwait.js +22 -0
- package/build/src/util/spawnAwait.js.map +1 -0
- package/build/src/util/sysexits.d.ts +11 -9
- package/build/src/util/sysexits.d.ts.map +1 -1
- package/build/src/util/sysexits.js +5 -3
- package/build/src/util/sysexits.js.map +1 -1
- package/package.json +17 -12
- package/build/src/commands/build/BuildActivity.d.ts +0 -17
- package/build/src/commands/build/BuildActivity.d.ts.map +0 -1
- package/build/src/commands/build/BuildActivity.js +0 -11
- package/build/src/commands/build/BuildActivity.js.map +0 -1
- package/build/src/commands/build/BuildKmnKeyboard.d.ts +0 -10
- package/build/src/commands/build/BuildKmnKeyboard.d.ts.map +0 -1
- package/build/src/commands/build/BuildKmnKeyboard.js.map +0 -1
- package/build/src/commands/build/BuildLdmlKeyboard.d.ts +0 -10
- package/build/src/commands/build/BuildLdmlKeyboard.d.ts.map +0 -1
- package/build/src/commands/build/BuildLdmlKeyboard.js.map +0 -1
- package/build/src/commands/build/BuildModel.d.ts +0 -10
- package/build/src/commands/build/BuildModel.d.ts.map +0 -1
- package/build/src/commands/build/BuildModel.js.map +0 -1
- package/build/src/commands/build/BuildPackage.d.ts +0 -10
- package/build/src/commands/build/BuildPackage.d.ts.map +0 -1
- package/build/src/commands/build/BuildPackage.js.map +0 -1
- package/build/src/commands/build/BuildProject.d.ts +0 -11
- package/build/src/commands/build/BuildProject.d.ts.map +0 -1
- package/build/src/commands/build/BuildProject.js +0 -111
- package/build/src/commands/build/BuildProject.js.map +0 -1
- package/build/src/commands/build/buildActivities.d.ts +0 -3
- package/build/src/commands/build/buildActivities.d.ts.map +0 -1
- package/build/src/commands/build/buildActivities.js.map +0 -1
- package/build/src/messages/NodeCompilerCallbacks.d.ts +0 -21
- package/build/src/messages/NodeCompilerCallbacks.d.ts.map +0 -1
- package/build/src/messages/NodeCompilerCallbacks.js +0 -100
- package/build/src/messages/NodeCompilerCallbacks.js.map +0 -1
- package/build/src/util/kpj.schema.json +0 -127
- package/build/src/util/kvks.schema.json +0 -182
- package/build/src/util/ldml-keyboard.schema.json +0 -702
- package/build/src/util/ldml-keyboardtest.schema.json +0 -221
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f642b2ed-e9e5-50cc-91b3-afe1c2a32833")}catch(e){}}();
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
export declare function declareAnalyze(program: Command): void;
|
|
4
|
+
//# debugId=f642b2ed-e9e5-50cc-91b3-afe1c2a32833
|
|
5
|
+
//# sourceMappingURL=analyze.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"debug_id":"f642b2ed-e9e5-50cc-91b3-afe1c2a32833","file":"analyze.d.ts","mappings":";AAEA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAoB5C,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAK9C","names":[],"sourceRoot":"","sources":["../../../src/commands/analyze.ts"],"version":3}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="bab39bb3-d6cf-5c75-8996-0009fc8739e4")}catch(e){}}();
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
import { Option } from 'commander';
|
|
5
|
+
import { NodeCompilerCallbacks } from '../util/NodeCompilerCallbacks.js';
|
|
6
|
+
import { InfrastructureMessages } from '../messages/messages.js';
|
|
7
|
+
import { AnalyzeOskCharacterUse, AnalyzeOskRewritePua } from '@keymanapp/kmc-analyze';
|
|
8
|
+
import { BaseOptions } from '../util/baseOptions.js';
|
|
9
|
+
import { runOnFiles } from '../util/projectRunner.js';
|
|
10
|
+
;
|
|
11
|
+
export function declareAnalyze(program) {
|
|
12
|
+
let command = program.command('analyze [infile...]');
|
|
13
|
+
BaseOptions.addVersion(command);
|
|
14
|
+
declareOskCharUse(command);
|
|
15
|
+
declareOskRewrite(command);
|
|
16
|
+
}
|
|
17
|
+
function declareOskCharUse(command) {
|
|
18
|
+
let subCommand = command.command('osk-char-use');
|
|
19
|
+
BaseOptions.addVersion(subCommand);
|
|
20
|
+
BaseOptions.addLogLevel(subCommand);
|
|
21
|
+
subCommand
|
|
22
|
+
.description('Analyze On Screen Keyboards for character usage')
|
|
23
|
+
.option('-b, --base', 'First PUA codepoint to use, in hexadecimal (default F100)', 'F100')
|
|
24
|
+
.option('--include-counts', 'Include number of times each character is referenced', false)
|
|
25
|
+
.option('--strip-dotted-circle', 'Strip U+25CC (dotted circle base) from results', false)
|
|
26
|
+
.addOption(new Option('-m, --mapping-file <filename>', 'Result file to write to (.json, .md, or .txt)').makeOptionMandatory())
|
|
27
|
+
.action(async (filenames, options) => {
|
|
28
|
+
if (!filenames.length) {
|
|
29
|
+
// If there are no filenames provided, then we are building the current
|
|
30
|
+
// folder ('.') as a project-style build
|
|
31
|
+
filenames.push('.');
|
|
32
|
+
}
|
|
33
|
+
if (!await analyze(analyzeOskCharUse, filenames, options)) {
|
|
34
|
+
// Once a file fails to build, we bail on subsequent builds
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function declareOskRewrite(command) {
|
|
40
|
+
let subCommand = command.command('osk-rewrite-from-char-use');
|
|
41
|
+
subCommand
|
|
42
|
+
.description('Rewrite On Screen Keyboard files from source mapping; given file.ext, output is written to file-pua.ext')
|
|
43
|
+
.addOption(new Option('-m, --mapping-file <filename>', 'JSON mapping file to read from').makeOptionMandatory())
|
|
44
|
+
.action(async (filenames, options) => {
|
|
45
|
+
if (!filenames.length) {
|
|
46
|
+
// If there are no filenames provided, then we are building the current
|
|
47
|
+
// folder ('.') as a project-style build
|
|
48
|
+
filenames.push('.');
|
|
49
|
+
}
|
|
50
|
+
if (!await analyze(analyzeOskRewritePua, filenames, options)) {
|
|
51
|
+
// Once a file fails to build, we bail on subsequent builds
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
async function analyze(action, filenames, options) {
|
|
57
|
+
let callbacks = new NodeCompilerCallbacks({ logLevel: options.logLevel });
|
|
58
|
+
try {
|
|
59
|
+
return await action(callbacks, filenames, options);
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
callbacks.reportMessage(InfrastructureMessages.Fatal_UnexpectedException({ e }));
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async function analyzeOskCharUse(callbacks, filenames, options) {
|
|
67
|
+
const format = path.extname(options.mappingFile);
|
|
68
|
+
if (format != '.txt' && format != '.json' && format != '.md') {
|
|
69
|
+
callbacks.reportMessage(InfrastructureMessages.Error_UnknownFileFormat({ format }));
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
const analyzer = new AnalyzeOskCharacterUse(callbacks, {
|
|
73
|
+
puaBase: parseInt(options.base, 16),
|
|
74
|
+
stripDottedCircle: options.stripDottedCircle,
|
|
75
|
+
includeCounts: options.includeCounts,
|
|
76
|
+
});
|
|
77
|
+
if (!await runOnFiles(callbacks, filenames, analyzer.analyze.bind(analyzer))) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
const output = analyzer.getStrings(format).join('\n');
|
|
81
|
+
fs.writeFileSync(options.mappingFile, output, 'utf8');
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
async function analyzeOskRewritePua(callbacks, filenames, options) {
|
|
85
|
+
const analyzer = new AnalyzeOskRewritePua(callbacks);
|
|
86
|
+
const mapping = JSON.parse(callbacks.fs.readFileSync(options.mappingFile, 'UTF-8'));
|
|
87
|
+
return await runOnFiles(callbacks, filenames, async (filename) => {
|
|
88
|
+
if (!await analyzer.analyze(filename, mapping)) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
const mappedFilenames = Object.keys(analyzer.data);
|
|
92
|
+
for (let filename of mappedFilenames) {
|
|
93
|
+
const ext = path.extname(filename);
|
|
94
|
+
const outputFilename = filename.substring(0, filename.length - ext.length) + '-pua' + ext;
|
|
95
|
+
fs.writeFileSync(outputFilename, analyzer.data[filename]);
|
|
96
|
+
}
|
|
97
|
+
return true;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
//# debugId=bab39bb3-d6cf-5c75-8996-0009fc8739e4
|
|
101
|
+
//# sourceMappingURL=analyze.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"debug_id":"bab39bb3-d6cf-5c75-8996-0009fc8739e4","file":"analyze.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../../src/commands/analyze.ts"],"version":3}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="1f8c1418-c824-56f7-af2b-7817e5737ae0")}catch(e){}}();
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
export declare function declareBuild(program: Command): void;
|
|
4
|
+
//# debugId=1f8c1418-c824-56f7-af2b-7817e5737ae0
|
|
5
|
+
//# sourceMappingURL=build.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"debug_id":"1f8c1418-c824-56f7-af2b-7817e5737ae0","file":"build.d.ts","mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4BpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,QAiD5C","names":[],"sourceRoot":"","sources":["../../../src/commands/build.ts"],"version":3}
|
|
@@ -1,69 +1,126 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
1
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9f24c226-557f-59c4-9b3a-209efb7ec355")}catch(e){}}();
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
import { buildActivities } from './buildClasses/buildActivities.js';
|
|
5
|
+
import { BuildProject } from './buildClasses/BuildProject.js';
|
|
6
|
+
import { NodeCompilerCallbacks } from '../util/NodeCompilerCallbacks.js';
|
|
7
|
+
import { InfrastructureMessages } from '../messages/messages.js';
|
|
8
|
+
import { CompilerFileCallbacks } from '@keymanapp/common-types';
|
|
9
|
+
import { BaseOptions } from '../util/baseOptions.js';
|
|
10
|
+
import { expandFileLists } from '../util/fileLists.js';
|
|
11
|
+
import { isProject } from '../util/projectLoader.js';
|
|
12
|
+
function commandOptionsToCompilerOptions(options) {
|
|
13
|
+
// We don't want to rename command line options to match the precise
|
|
14
|
+
// properties that we have in CompilerOptions, but nor do we want to rename
|
|
15
|
+
// CompilerOptions properties...
|
|
16
|
+
return {
|
|
17
|
+
// CompilerBaseOptions
|
|
18
|
+
outFile: options.outFile,
|
|
19
|
+
logLevel: options.logLevel,
|
|
20
|
+
color: options.color,
|
|
21
|
+
// CompilerOptions
|
|
22
|
+
shouldAddCompilerVersion: options.compilerVersion,
|
|
23
|
+
saveDebug: options.debug,
|
|
24
|
+
compilerWarningsAsErrors: options.compilerWarningsAsErrors,
|
|
25
|
+
warnDeprecatedCode: options.warnDeprecatedCode,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export function declareBuild(program) {
|
|
29
|
+
BaseOptions.addAll(program
|
|
30
|
+
.command('build [infile...]')
|
|
31
|
+
.description(`Compile one or more source files or projects.`)
|
|
32
|
+
.addHelpText('after', `
|
|
33
|
+
Supported file types:
|
|
34
|
+
* folder: Keyman project in folder
|
|
35
|
+
* .kpj: Keyman project
|
|
36
|
+
* .kmn: Keyman keyboard
|
|
37
|
+
* .xml: LDML keyboard
|
|
38
|
+
* .model.ts: Keyman lexical model
|
|
39
|
+
* .kps: Keyman keyboard or lexical model package
|
|
40
|
+
|
|
41
|
+
The following two metadata file types are also supported:
|
|
42
|
+
* .model_info: lexical model metadata file
|
|
43
|
+
* .keyboard_info: keyboard metadata file
|
|
44
|
+
|
|
45
|
+
File lists can be referenced with @filelist.txt.
|
|
46
|
+
|
|
47
|
+
If no input file is supplied, kmc will build the current folder.`))
|
|
48
|
+
.option('-d, --debug', 'Include debug information in output')
|
|
49
|
+
.option('-w, --compiler-warnings-as-errors', 'Causes warnings to fail the build; overrides project-level warnings-as-errors option')
|
|
50
|
+
.option('-W, --no-compiler-warnings-as-errors', 'Warnings do not fail the build; overrides project-level warnings-as-errors option')
|
|
51
|
+
.option('--no-compiler-version', 'Exclude compiler version metadata from output')
|
|
52
|
+
.option('--no-warn-deprecated-code', 'Turn off warnings for deprecated code styles')
|
|
53
|
+
.option('--color', 'Force colorization for log messages')
|
|
54
|
+
.option('--no-color', 'No colorization for log messages; if both omitted, detects from console')
|
|
55
|
+
.action(async (filenames, options) => {
|
|
56
|
+
options = commandOptionsToCompilerOptions(options);
|
|
57
|
+
const callbacks = new NodeCompilerCallbacks(options);
|
|
58
|
+
if (!filenames.length) {
|
|
59
|
+
// If there are no filenames provided, then we are building the current
|
|
60
|
+
// folder ('.') as a project-style build
|
|
61
|
+
filenames.push('.');
|
|
62
|
+
}
|
|
63
|
+
if (!expandFileLists(filenames, callbacks)) {
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
for (let filename of filenames) {
|
|
67
|
+
if (!await build(filename, callbacks, options)) {
|
|
68
|
+
// Once a file fails to build, we bail on subsequent builds
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
async function build(filename, parentCallbacks, options) {
|
|
75
|
+
if (!fs.existsSync(filename)) {
|
|
76
|
+
parentCallbacks.reportMessage(InfrastructureMessages.Error_FileDoesNotExist({ filename }));
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
let builder = null;
|
|
81
|
+
// If infile is a directory, then we treat that as a project and build it
|
|
82
|
+
if (isProject(filename)) {
|
|
83
|
+
builder = new BuildProject();
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
// Otherwise, if it's one of our known file extensions, we build it
|
|
87
|
+
let extensions = [];
|
|
88
|
+
builder = buildActivities.find(build => {
|
|
89
|
+
extensions.push(build.sourceExtension);
|
|
90
|
+
return filename.toLowerCase().endsWith(build.sourceExtension);
|
|
91
|
+
});
|
|
92
|
+
if (!builder) {
|
|
93
|
+
parentCallbacks.reportMessage(InfrastructureMessages.Error_FileTypeNotRecognized({ filename, extensions: extensions.join(', ') }));
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// For builds which refer to a project folder, we'll imply a build of the
|
|
98
|
+
// .kpj, even if it doesn't actually exist, just for clarity.
|
|
99
|
+
let buildFilename = path.resolve(filename);
|
|
100
|
+
if (fs.statSync(filename).isDirectory()) {
|
|
101
|
+
buildFilename = path.join(buildFilename, path.basename(buildFilename) + ".kpj" /* KeymanFileTypes.Source.Project */);
|
|
102
|
+
}
|
|
103
|
+
buildFilename = path.relative(process.cwd(), buildFilename).replace(/\\/g, '/');
|
|
104
|
+
const callbacks = new CompilerFileCallbacks(buildFilename, options, parentCallbacks);
|
|
105
|
+
callbacks.reportMessage(InfrastructureMessages.Info_BuildingFile({ filename: buildFilename }));
|
|
106
|
+
let result = await builder.build(filename, callbacks, options);
|
|
107
|
+
result = result && !callbacks.hasFailureMessage();
|
|
108
|
+
if (result) {
|
|
109
|
+
callbacks.reportMessage(builder instanceof BuildProject
|
|
110
|
+
? InfrastructureMessages.Info_ProjectBuiltSuccessfully({ filename: buildFilename })
|
|
111
|
+
: InfrastructureMessages.Info_FileBuiltSuccessfully({ filename: buildFilename }));
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
callbacks.reportMessage(builder instanceof BuildProject
|
|
115
|
+
? InfrastructureMessages.Info_ProjectNotBuiltSuccessfully({ filename: buildFilename })
|
|
116
|
+
: InfrastructureMessages.Info_FileNotBuiltSuccessfully({ filename: buildFilename }));
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
catch (e) {
|
|
121
|
+
parentCallbacks.reportMessage(InfrastructureMessages.Fatal_UnexpectedException({ e }));
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//# debugId=9f24c226-557f-59c4-9b3a-209efb7ec355
|
|
126
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"debug_id":"9f24c226-557f-59c4-9b3a-209efb7ec355","file":"build.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../../src/commands/build.ts"],"version":3}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="7bb3474a-2fa6-54b0-b855-a046360da06a")}catch(e){}}();
|
|
2
|
+
import { CompilerCallbacks, CompilerOptions, KeymanFileTypes } from "@keymanapp/common-types";
|
|
3
|
+
export declare abstract class BuildActivity {
|
|
4
|
+
abstract get name(): string;
|
|
5
|
+
abstract get sourceExtension(): KeymanFileTypes.Source;
|
|
6
|
+
abstract get compiledExtension(): KeymanFileTypes.Binary;
|
|
7
|
+
abstract get description(): string;
|
|
8
|
+
abstract build(infile: string, callbacks: CompilerCallbacks, options: CompilerOptions): Promise<boolean>;
|
|
9
|
+
protected getOutputFilename(infile: string, options: CompilerOptions): string;
|
|
10
|
+
}
|
|
11
|
+
//# debugId=7bb3474a-2fa6-54b0-b855-a046360da06a
|
|
12
|
+
//# sourceMappingURL=BuildActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"debug_id":"7bb3474a-2fa6-54b0-b855-a046360da06a","file":"BuildActivity.d.ts","mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG9F,8BAAsB,aAAa;IACjC,aAAoB,IAAI,IAAI,MAAM,CAAC;IACnC,aAAoB,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC;IAC9D,aAAoB,iBAAiB,IAAI,eAAe,CAAC,MAAM,CAAC;IAChE,aAAoB,WAAW,IAAI,MAAM,CAAC;aAC1B,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAC/G,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM;CAK9E","names":[],"sourceRoot":"","sources":["../../../../src/commands/buildClasses/BuildActivity.ts"],"version":3}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="71a622ad-a707-5baa-aec5-3a478cbff2b0")}catch(e){}}();
|
|
2
|
+
import { escapeRegExp } from "../../util/escapeRegExp.js";
|
|
3
|
+
export class BuildActivity {
|
|
4
|
+
getOutputFilename(infile, options) {
|
|
5
|
+
return options.outFile ?
|
|
6
|
+
options.outFile :
|
|
7
|
+
infile.replace(new RegExp(escapeRegExp(this.sourceExtension), "g"), this.compiledExtension);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
;
|
|
11
|
+
//# debugId=71a622ad-a707-5baa-aec5-3a478cbff2b0
|
|
12
|
+
//# sourceMappingURL=BuildActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"debug_id":"71a622ad-a707-5baa-aec5-3a478cbff2b0","file":"BuildActivity.js","mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,MAAM,OAAgB,aAAa;IAMvB,iBAAiB,CAAC,MAAc,EAAE,OAAwB;QAClE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,CAAC,OAAO,CAAC,CAAC;YACjB,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChG,CAAC;CACF;AAAA,CAAC","names":[],"sourceRoot":"","sources":["../../../../src/commands/buildClasses/BuildActivity.ts"],"version":3}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="10f685c8-646a-5c4f-b670-19c955ce0f2c")}catch(e){}}();
|
|
2
|
+
import { BuildActivity } from './BuildActivity.js';
|
|
3
|
+
import { CompilerCallbacks, CompilerOptions, KeymanFileTypes } from '@keymanapp/common-types';
|
|
4
|
+
export declare class BuildKeyboardInfo extends BuildActivity {
|
|
5
|
+
get name(): string;
|
|
6
|
+
get sourceExtension(): KeymanFileTypes.Source;
|
|
7
|
+
get compiledExtension(): KeymanFileTypes.Binary;
|
|
8
|
+
get description(): string;
|
|
9
|
+
build(infile: string, callbacks: CompilerCallbacks, options: CompilerOptions): Promise<boolean>;
|
|
10
|
+
}
|
|
11
|
+
//# debugId=10f685c8-646a-5c4f-b670-19c955ce0f2c
|
|
12
|
+
//# sourceMappingURL=BuildKeyboardInfo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"debug_id":"10f685c8-646a-5c4f-b670-19c955ce0f2c","file":"BuildKeyboardInfo.d.ts","mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAA0B,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAStH,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,IAAW,IAAI,IAAI,MAAM,CAAgC;IACzD,IAAW,eAAe,IAAI,eAAe,CAAC,MAAM,CAAgD;IACpG,IAAW,iBAAiB,IAAI,eAAe,CAAC,MAAM,CAAgD;IACtG,IAAW,WAAW,IAAI,MAAM,CAA6C;IAChE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;CAgE7G","names":[],"sourceRoot":"","sources":["../../../../src/commands/buildClasses/BuildKeyboardInfo.ts"],"version":3}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="6967dabf-d18f-5896-a917-bd2b99ba8add")}catch(e){}}();
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import { BuildActivity } from './BuildActivity.js';
|
|
4
|
+
import { KeymanFileTypes } from '@keymanapp/common-types';
|
|
5
|
+
import { KeyboardInfoCompiler } from '@keymanapp/kmc-keyboard-info';
|
|
6
|
+
import { loadProject } from '../../util/projectLoader.js';
|
|
7
|
+
import { InfrastructureMessages } from '../../messages/messages.js';
|
|
8
|
+
import { KmpCompiler } from '@keymanapp/kmc-package';
|
|
9
|
+
import { calculateSourcePath } from '../../util/calculateSourcePath.js';
|
|
10
|
+
const HelpRoot = 'https://help.keyman.com/keyboard/';
|
|
11
|
+
export class BuildKeyboardInfo extends BuildActivity {
|
|
12
|
+
get name() { return 'Keyboard metadata'; }
|
|
13
|
+
get sourceExtension() { return ".keyboard_info" /* KeymanFileTypes.Source.KeyboardInfo */; }
|
|
14
|
+
get compiledExtension() { return ".keyboard_info" /* KeymanFileTypes.Binary.KeyboardInfo */; }
|
|
15
|
+
get description() { return 'Build a keyboard metadata file'; }
|
|
16
|
+
async build(infile, callbacks, options) {
|
|
17
|
+
if (KeymanFileTypes.filenameIs(infile, ".keyboard_info" /* KeymanFileTypes.Source.KeyboardInfo */)) {
|
|
18
|
+
// We are given a .keyboard_info but need to use the project file in the
|
|
19
|
+
// same folder, so that we can find the related files. This also supports
|
|
20
|
+
// version 2.0 projects (where the .kpj file is optional).
|
|
21
|
+
infile = KeymanFileTypes.replaceExtension(infile, ".keyboard_info" /* KeymanFileTypes.Source.KeyboardInfo */, ".kpj" /* KeymanFileTypes.Source.Project */);
|
|
22
|
+
}
|
|
23
|
+
const project = loadProject(infile, callbacks);
|
|
24
|
+
if (!project) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
const metadata = findProjectFile(callbacks, project, ".keyboard_info" /* KeymanFileTypes.Source.KeyboardInfo */);
|
|
28
|
+
if (!metadata) {
|
|
29
|
+
// Project loader should always have added a metadata file
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
if (!fs.existsSync(project.resolveInputFilePath(metadata))) {
|
|
33
|
+
// For now, if the metadata file does not exist, we won't attempt to build
|
|
34
|
+
// it. One day in the future, when source metadata files become optional,
|
|
35
|
+
// we'll need to skip this
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
const keyboard = findProjectFile(callbacks, project, ".kmn" /* KeymanFileTypes.Source.KeymanKeyboard */);
|
|
39
|
+
const kps = findProjectFile(callbacks, project, ".kps" /* KeymanFileTypes.Source.Package */);
|
|
40
|
+
if (!keyboard || !kps) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
let kmpCompiler = new KmpCompiler(callbacks);
|
|
44
|
+
let kmpJsonData = kmpCompiler.transformKpsToKmpObject(project.resolveInputFilePath(kps));
|
|
45
|
+
if (!kmpJsonData) {
|
|
46
|
+
// Errors will have been emitted by KmpCompiler
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
const keyboardFileNameJs = project.resolveOutputFilePath(keyboard, ".kmn" /* KeymanFileTypes.Source.KeymanKeyboard */, ".js" /* KeymanFileTypes.Binary.WebKeyboard */);
|
|
50
|
+
const keyboard_id = callbacks.path.basename(metadata.filename, ".keyboard_info" /* KeymanFileTypes.Source.KeyboardInfo */);
|
|
51
|
+
const compiler = new KeyboardInfoCompiler(callbacks);
|
|
52
|
+
const data = compiler.writeMergedKeyboardInfoFile(project.resolveInputFilePath(metadata), {
|
|
53
|
+
keyboard_id,
|
|
54
|
+
kmpFileName: project.resolveOutputFilePath(kps, ".kps" /* KeymanFileTypes.Source.Package */, ".kmp" /* KeymanFileTypes.Binary.Package */),
|
|
55
|
+
kmpJsonData,
|
|
56
|
+
kpsFileName: project.resolveInputFilePath(kps),
|
|
57
|
+
helpLink: HelpRoot + keyboard_id,
|
|
58
|
+
keyboardFileNameJs: fs.existsSync(keyboardFileNameJs) ? keyboardFileNameJs : undefined,
|
|
59
|
+
sourcePath: calculateSourcePath(infile)
|
|
60
|
+
});
|
|
61
|
+
if (data == null) {
|
|
62
|
+
// Error messages have already been emitted by KeyboardInfoCompiler
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
fs.writeFileSync(project.resolveOutputFilePath(metadata, ".keyboard_info" /* KeymanFileTypes.Source.KeyboardInfo */, ".keyboard_info" /* KeymanFileTypes.Binary.KeyboardInfo */), data);
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function findProjectFile(callbacks, project, ext) {
|
|
70
|
+
const file = project.files.find(file => file.fileType == ext);
|
|
71
|
+
if (!file) {
|
|
72
|
+
callbacks.reportMessage(InfrastructureMessages.Error_FileTypeNotFound({ ext }));
|
|
73
|
+
}
|
|
74
|
+
return file;
|
|
75
|
+
}
|
|
76
|
+
//# debugId=6967dabf-d18f-5896-a917-bd2b99ba8add
|
|
77
|
+
//# sourceMappingURL=BuildKeyboardInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"debug_id":"6967dabf-d18f-5896-a917-bd2b99ba8add","file":"BuildKeyboardInfo.js","mappings":"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","names":[],"sourceRoot":"","sources":["../../../../src/commands/buildClasses/BuildKeyboardInfo.ts"],"version":3}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4d32eaf7-d82e-58dd-b845-f2d26b526db3")}catch(e){}}();
|
|
2
|
+
import { CompilerOptions, CompilerCallbacks, KeymanFileTypes } from '@keymanapp/common-types';
|
|
3
|
+
import { BuildActivity } from './BuildActivity.js';
|
|
4
|
+
export declare class BuildKmnKeyboard extends BuildActivity {
|
|
5
|
+
get name(): string;
|
|
6
|
+
get sourceExtension(): KeymanFileTypes.Source;
|
|
7
|
+
get compiledExtension(): KeymanFileTypes.Binary;
|
|
8
|
+
get description(): string;
|
|
9
|
+
build(infile: string, callbacks: CompilerCallbacks, options: CompilerOptions): Promise<boolean>;
|
|
10
|
+
}
|
|
11
|
+
//# debugId=4d32eaf7-d82e-58dd-b845-f2d26b526db3
|
|
12
|
+
//# sourceMappingURL=BuildKmnKeyboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"debug_id":"4d32eaf7-d82e-58dd-b845-f2d26b526db3","file":"BuildKmnKeyboard.d.ts","mappings":";AAGA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,qBAAa,gBAAiB,SAAQ,aAAa;IACjD,IAAW,IAAI,IAAI,MAAM,CAA8B;IACvD,IAAW,eAAe,IAAI,eAAe,CAAC,MAAM,CAAkD;IACtG,IAAW,iBAAiB,IAAI,eAAe,CAAC,MAAM,CAA4C;IAClG,IAAW,WAAW,IAAI,MAAM,CAAsC;IACzD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;CAgB7G","names":[],"sourceRoot":"","sources":["../../../../src/commands/buildClasses/BuildKmnKeyboard.ts"],"version":3}
|
|
@@ -1,44 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
get
|
|
8
|
-
get
|
|
9
|
-
get
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
// TODO:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return filename;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=BuildKmnKeyboard.js.map
|
|
1
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="44ead5f1-da7c-5b53-923f-4f4aa2bc0af9")}catch(e){}}();
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { platform } from 'os';
|
|
4
|
+
import { KmnCompiler } from '@keymanapp/kmc-kmn';
|
|
5
|
+
import { BuildActivity } from './BuildActivity.js';
|
|
6
|
+
export class BuildKmnKeyboard extends BuildActivity {
|
|
7
|
+
get name() { return 'Keyman keyboard'; }
|
|
8
|
+
get sourceExtension() { return ".kmn" /* KeymanFileTypes.Source.KeymanKeyboard */; }
|
|
9
|
+
get compiledExtension() { return ".kmx" /* KeymanFileTypes.Binary.Keyboard */; }
|
|
10
|
+
get description() { return 'Build a Keyman keyboard'; }
|
|
11
|
+
async build(infile, callbacks, options) {
|
|
12
|
+
let compiler = new KmnCompiler();
|
|
13
|
+
if (!await compiler.init(callbacks)) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
// We need to resolve paths to absolute paths before calling kmc-kmn
|
|
17
|
+
let outfile = this.getOutputFilename(infile, options);
|
|
18
|
+
infile = getPosixAbsolutePath(infile);
|
|
19
|
+
outfile = getPosixAbsolutePath(outfile);
|
|
20
|
+
// TODO: Currently this only builds .kmn->.kmx, and targeting .js is as-yet unsupported
|
|
21
|
+
// TODO: outfile should be set in options only?
|
|
22
|
+
return compiler.run(infile, outfile, options);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function getPosixAbsolutePath(filename) {
|
|
26
|
+
if (platform() == 'win32') {
|
|
27
|
+
// On Win32, we need to use backslashes for path.resolve to work
|
|
28
|
+
filename = filename.replace(/\//g, '\\');
|
|
29
|
+
}
|
|
30
|
+
// Resolve to a fully qualified absolute path
|
|
31
|
+
filename = path.resolve(filename);
|
|
32
|
+
if (platform() == 'win32') {
|
|
33
|
+
// Ensure that we convert the result back to posix-style paths which is what
|
|
34
|
+
// kmc-kmn expects. On posix platforms, we assume paths have forward slashes
|
|
35
|
+
// already
|
|
36
|
+
filename = filename.replace(/\\/g, '/');
|
|
37
|
+
}
|
|
38
|
+
return filename;
|
|
39
|
+
}
|
|
40
|
+
//# debugId=44ead5f1-da7c-5b53-923f-4f4aa2bc0af9
|
|
41
|
+
//# sourceMappingURL=BuildKmnKeyboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"debug_id":"44ead5f1-da7c-5b53-923f-4f4aa2bc0af9","file":"BuildKmnKeyboard.js","mappings":";AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IACjD,IAAW,IAAI,KAAa,OAAO,iBAAiB,CAAC,CAAC,CAAC;IACvD,IAAW,eAAe,KAA6B,0DAA6C,CAAC,CAAC;IACtG,IAAW,iBAAiB,KAA6B,oDAAuC,CAAC,CAAC;IAClG,IAAW,WAAW,KAAa,OAAO,yBAAyB,CAAC,CAAC,CAAC;IAC/D,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,SAA4B,EAAE,OAAwB;QACvF,IAAI,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,IAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAClC,OAAO,KAAK,CAAC;SACd;QAED,oEAAoE;QACpE,IAAI,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEtD,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAExC,uFAAuF;QACvF,+CAA+C;QAC/C,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;CACF;AAED,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,IAAG,QAAQ,EAAE,IAAI,OAAO,EAAE;QACxB,gEAAgE;QAChE,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KAC1C;IAED,6CAA6C;IAC7C,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAElC,IAAG,QAAQ,EAAE,IAAI,OAAO,EAAE;QACxB,4EAA4E;QAC5E,4EAA4E;QAC5E,UAAU;QACV,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KACzC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC","names":[],"sourceRoot":"","sources":["../../../../src/commands/buildClasses/BuildKmnKeyboard.ts"],"version":3}
|