@keymanapp/kmc 17.0.85-alpha → 17.0.87-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/activities/BuildActivity.d.ts +13 -0
- package/build/src/activities/BuildActivity.d.ts.map +1 -0
- package/build/src/activities/BuildActivity.js +5 -0
- package/build/src/activities/BuildActivity.js.map +1 -0
- package/build/src/activities/BuildKmnKeyboard.d.ts +9 -0
- package/build/src/activities/BuildKmnKeyboard.d.ts.map +1 -0
- package/build/src/activities/BuildKmnKeyboard.js +41 -0
- package/build/src/activities/BuildKmnKeyboard.js.map +1 -0
- package/build/src/activities/BuildLdmlKeyboard.d.ts +9 -0
- package/build/src/activities/BuildLdmlKeyboard.d.ts.map +1 -0
- package/build/src/activities/{buildLdmlKeyboard.js → BuildLdmlKeyboard.js} +32 -29
- package/build/src/activities/BuildLdmlKeyboard.js.map +1 -0
- package/build/src/activities/BuildModel.d.ts +9 -0
- package/build/src/activities/BuildModel.d.ts.map +1 -0
- package/build/src/activities/BuildModel.js +28 -0
- package/build/src/activities/BuildModel.js.map +1 -0
- package/build/src/activities/BuildPackage.d.ts +9 -0
- package/build/src/activities/BuildPackage.d.ts.map +1 -0
- package/build/src/activities/BuildPackage.js +30 -0
- package/build/src/activities/BuildPackage.js.map +1 -0
- package/build/src/activities/BuildProject.d.ts +9 -0
- package/build/src/activities/BuildProject.d.ts.map +1 -0
- package/build/src/activities/{buildProject.js → BuildProject.js} +29 -31
- package/build/src/activities/BuildProject.js.map +1 -0
- package/build/src/activities/buildActivities.d.ts +3 -0
- package/build/src/activities/buildActivities.d.ts.map +1 -0
- package/build/src/activities/buildActivities.js +15 -0
- package/build/src/activities/buildActivities.js.map +1 -0
- package/build/src/activities/buildTestData.d.ts +2 -2
- package/build/src/activities/buildTestData.d.ts.map +1 -1
- package/build/src/activities/buildTestData.js.map +1 -1
- package/build/src/commands/build.d.ts +0 -5
- package/build/src/commands/build.d.ts.map +1 -1
- package/build/src/commands/build.js +19 -23
- package/build/src/commands/build.js.map +1 -1
- package/package.json +11 -8
- package/build/cjs-src/kmc.cjs +0 -187124
- package/build/cjs-src/kmlmc.cjs +0 -154539
- package/build/cjs-src/kmlmi.cjs +0 -17285
- package/build/cjs-src/kmlmp.cjs +0 -17229
- package/build/src/activities/buildKmnKeyboard.d.ts +0 -3
- package/build/src/activities/buildKmnKeyboard.d.ts.map +0 -1
- package/build/src/activities/buildKmnKeyboard.js +0 -35
- package/build/src/activities/buildKmnKeyboard.js.map +0 -1
- package/build/src/activities/buildLdmlKeyboard.d.ts +0 -3
- package/build/src/activities/buildLdmlKeyboard.d.ts.map +0 -1
- package/build/src/activities/buildLdmlKeyboard.js.map +0 -1
- package/build/src/activities/buildModel.d.ts +0 -3
- package/build/src/activities/buildModel.d.ts.map +0 -1
- package/build/src/activities/buildModel.js +0 -22
- package/build/src/activities/buildModel.js.map +0 -1
- package/build/src/activities/buildPackage.d.ts +0 -3
- package/build/src/activities/buildPackage.d.ts.map +0 -1
- package/build/src/activities/buildPackage.js +0 -24
- package/build/src/activities/buildPackage.js.map +0 -1
- package/build/src/activities/buildProject.d.ts +0 -3
- package/build/src/activities/buildProject.d.ts.map +0 -1
- package/build/src/activities/buildProject.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface BuildActivityOptions {
|
|
2
|
+
debug?: boolean;
|
|
3
|
+
outFile?: string;
|
|
4
|
+
compilerVersion?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare abstract class BuildActivity {
|
|
7
|
+
abstract get name(): string;
|
|
8
|
+
abstract get sourceExtension(): string;
|
|
9
|
+
abstract get compiledExtension(): string;
|
|
10
|
+
abstract get description(): string;
|
|
11
|
+
abstract build(infile: string, options: BuildActivityOptions): Promise<boolean>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=BuildActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildActivity.d.ts","sourceRoot":"","sources":["../../../src/activities/BuildActivity.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,8BAAsB,aAAa;IACjC,aAAoB,IAAI,IAAI,MAAM,CAAC;IACnC,aAAoB,eAAe,IAAI,MAAM,CAAC;IAC9C,aAAoB,iBAAiB,IAAI,MAAM,CAAC;IAChD,aAAoB,WAAW,IAAI,MAAM,CAAC;aAC1B,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;CACvF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildActivity.js","sourceRoot":"","sources":["../../../src/activities/BuildActivity.ts"],"names":[],"mappings":"AAIC,CAAC;AAEF,MAAM,OAAgB,aAAa;CAMlC;AAAA,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BuildActivity, BuildActivityOptions } from './BuildActivity.js';
|
|
2
|
+
export declare class BuildKmnKeyboard implements BuildActivity {
|
|
3
|
+
get name(): string;
|
|
4
|
+
get sourceExtension(): string;
|
|
5
|
+
get compiledExtension(): string;
|
|
6
|
+
get description(): string;
|
|
7
|
+
build(infile: string, options: BuildActivityOptions): Promise<boolean>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=BuildKmnKeyboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildKmnKeyboard.d.ts","sourceRoot":"","sources":["../../../src/activities/BuildKmnKeyboard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAIzE,qBAAa,gBAAiB,YAAW,aAAa;IACpD,IAAW,IAAI,IAAI,MAAM,CAA8B;IACvD,IAAW,eAAe,IAAI,MAAM,CAAmB;IACvD,IAAW,iBAAiB,IAAI,MAAM,CAAmB;IACzD,IAAW,WAAW,IAAI,MAAM,CAAsC;IACzD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;CAmBpF"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import { Compiler } from '@keymanapp/kmc-kmn';
|
|
3
|
+
import { platform } from 'os';
|
|
4
|
+
export class BuildKmnKeyboard {
|
|
5
|
+
get name() { return 'Keyman keyboard'; }
|
|
6
|
+
get sourceExtension() { return '.kmn'; }
|
|
7
|
+
get compiledExtension() { return '.kmx'; }
|
|
8
|
+
get description() { return 'Build a Keyman keyboard'; }
|
|
9
|
+
async build(infile, options) {
|
|
10
|
+
let compiler = new Compiler();
|
|
11
|
+
if (!await compiler.init()) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
// We need to resolve paths to absolute paths before calling kmc-kmn
|
|
15
|
+
let outfile = (options.outFile ?? infile).replace(/\.km.$/i, this.compiledExtension);
|
|
16
|
+
infile = getPosixAbsolutePath(infile);
|
|
17
|
+
outfile = getPosixAbsolutePath(outfile);
|
|
18
|
+
// TODO: Currently this only builds .kmn->.kmx, and targeting .js is as-yet unsupported
|
|
19
|
+
// TODO: Support additional options compilerWarningsAsErrors, warnDeprecatedCode
|
|
20
|
+
return compiler.run(infile, outfile, {
|
|
21
|
+
saveDebug: options.debug,
|
|
22
|
+
shouldAddCompilerVersion: options.compilerVersion,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function getPosixAbsolutePath(filename) {
|
|
27
|
+
if (platform() == 'win32') {
|
|
28
|
+
// On Win32, we need to use backslashes for path.resolve to work
|
|
29
|
+
filename = filename.replace(/\//g, '\\');
|
|
30
|
+
}
|
|
31
|
+
// Resolve to a fully qualified absolute path
|
|
32
|
+
filename = path.resolve(filename);
|
|
33
|
+
if (platform() == 'win32') {
|
|
34
|
+
// Ensure that we convert the result back to posix-style paths which is what
|
|
35
|
+
// kmc-kmn expects. On posix platforms, we assume paths have forward slashes
|
|
36
|
+
// already
|
|
37
|
+
filename = filename.replace(/\\/g, '/');
|
|
38
|
+
}
|
|
39
|
+
return filename;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=BuildKmnKeyboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildKmnKeyboard.js","sourceRoot":"","sources":["../../../src/activities/BuildKmnKeyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAE9B,MAAM,OAAO,gBAAgB;IAC3B,IAAW,IAAI,KAAa,OAAO,iBAAiB,CAAC,CAAC,CAAC;IACvD,IAAW,eAAe,KAAa,OAAO,MAAM,CAAC,CAAC,CAAC;IACvD,IAAW,iBAAiB,KAAa,OAAO,MAAM,CAAC,CAAC,CAAC;IACzD,IAAW,WAAW,KAAa,OAAO,yBAAyB,CAAC,CAAC,CAAC;IAC/D,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,OAA6B;QAC9D,IAAI,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE;YACzB,OAAO,KAAK,CAAC;SACd;QAED,oEAAoE;QACpE,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAErF,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAExC,uFAAuF;QACvF,gFAAgF;QAChF,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE;YACnC,SAAS,EAAE,OAAO,CAAC,KAAK;YACxB,wBAAwB,EAAE,OAAO,CAAC,eAAe;SAClD,CAAC,CAAC;IACL,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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BuildActivity, BuildActivityOptions } from './BuildActivity.js';
|
|
2
|
+
export declare class BuildLdmlKeyboard implements BuildActivity {
|
|
3
|
+
get name(): string;
|
|
4
|
+
get sourceExtension(): string;
|
|
5
|
+
get compiledExtension(): string;
|
|
6
|
+
get description(): string;
|
|
7
|
+
build(infile: string, options: BuildActivityOptions): Promise<boolean>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=BuildLdmlKeyboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildLdmlKeyboard.d.ts","sourceRoot":"","sources":["../../../src/activities/BuildLdmlKeyboard.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEzE,qBAAa,iBAAkB,YAAW,aAAa;IACrD,IAAW,IAAI,IAAI,MAAM,CAA4B;IACrD,IAAW,eAAe,IAAI,MAAM,CAAmB;IACvD,IAAW,iBAAiB,IAAI,MAAM,CAAmB;IACzD,IAAW,WAAW,IAAI,MAAM,CAAoC;IACvD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;CA+BpF"}
|
|
@@ -3,32 +3,38 @@ import * as fs from 'fs';
|
|
|
3
3
|
import * as kmc from '@keymanapp/kmc-keyboard';
|
|
4
4
|
import { KvkFileWriter } from '@keymanapp/common-types';
|
|
5
5
|
import { NodeCompilerCallbacks } from '../util/NodeCompilerCallbacks.js';
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
6
|
+
export class BuildLdmlKeyboard {
|
|
7
|
+
get name() { return 'LDML keyboard'; }
|
|
8
|
+
get sourceExtension() { return '.xml'; }
|
|
9
|
+
get compiledExtension() { return '.kmx'; }
|
|
10
|
+
get description() { return 'Build a LDML keyboard'; }
|
|
11
|
+
async build(infile, options) {
|
|
12
|
+
// TODO-LDML: consider hardware vs touch -- touch-only layout will not have a .kvk
|
|
13
|
+
// Compile:
|
|
14
|
+
let [kmx, kvk, kmw] = buildLdmlKeyboardToMemory(infile, options);
|
|
15
|
+
// Output:
|
|
16
|
+
const fileBaseName = options.outFile ?? infile;
|
|
17
|
+
const outFileBase = path.basename(fileBaseName, path.extname(fileBaseName));
|
|
18
|
+
const outFileDir = path.dirname(fileBaseName);
|
|
19
|
+
if (kmx && kvk) {
|
|
20
|
+
const outFileKmx = path.join(outFileDir, outFileBase + '.kmx');
|
|
21
|
+
console.log(`Writing compiled keyboard to ${outFileKmx}`);
|
|
22
|
+
fs.writeFileSync(outFileKmx, kmx);
|
|
23
|
+
const outFileKvk = path.join(outFileDir, outFileBase + '.kvk');
|
|
24
|
+
console.log(`Writing compiled visual keyboard to ${outFileKvk}`);
|
|
25
|
+
fs.writeFileSync(outFileKvk, kvk);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
console.error(`An error occurred compiling ${infile}`);
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
if (kmw) {
|
|
32
|
+
const outFileKmw = path.join(outFileDir, outFileBase + '.js');
|
|
33
|
+
console.log(`Writing compiled js keyboard to ${outFileKmw}`);
|
|
34
|
+
fs.writeFileSync(outFileKmw, kmw);
|
|
35
|
+
}
|
|
36
|
+
return true;
|
|
21
37
|
}
|
|
22
|
-
else {
|
|
23
|
-
console.error(`An error occurred compiling ${infile}`);
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
if (kmw) {
|
|
27
|
-
const outFileKmw = path.join(outFileDir, outFileBase + '.js');
|
|
28
|
-
console.log(`Writing compiled js keyboard to ${outFileKmw}`);
|
|
29
|
-
fs.writeFileSync(outFileKmw, kmw);
|
|
30
|
-
}
|
|
31
|
-
return true;
|
|
32
38
|
}
|
|
33
39
|
function buildLdmlKeyboardToMemory(inputFilename, options) {
|
|
34
40
|
let compilerOptions = {
|
|
@@ -41,9 +47,6 @@ function buildLdmlKeyboardToMemory(inputFilename, options) {
|
|
|
41
47
|
if (!source) {
|
|
42
48
|
return [null, null, null];
|
|
43
49
|
}
|
|
44
|
-
if (!k.validate(source)) {
|
|
45
|
-
return [null, null, null];
|
|
46
|
-
}
|
|
47
50
|
let kmx = k.compile(source);
|
|
48
51
|
if (!kmx) {
|
|
49
52
|
return [null, null, null];
|
|
@@ -69,4 +72,4 @@ function buildLdmlKeyboardToMemory(inputFilename, options) {
|
|
|
69
72
|
const kmw_binary = encoder.encode(kmw_string);
|
|
70
73
|
return [kmx_binary, kvk_binary, kmw_binary];
|
|
71
74
|
}
|
|
72
|
-
//# sourceMappingURL=
|
|
75
|
+
//# sourceMappingURL=BuildLdmlKeyboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildLdmlKeyboard.js","sourceRoot":"","sources":["../../../src/activities/BuildLdmlKeyboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BuildActivity, BuildActivityOptions } from './BuildActivity.js';
|
|
2
|
+
export declare class BuildModel implements BuildActivity {
|
|
3
|
+
get name(): string;
|
|
4
|
+
get sourceExtension(): string;
|
|
5
|
+
get compiledExtension(): string;
|
|
6
|
+
get description(): string;
|
|
7
|
+
build(infile: string, options: BuildActivityOptions): Promise<boolean>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=BuildModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildModel.d.ts","sourceRoot":"","sources":["../../../src/activities/BuildModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAGzE,qBAAa,UAAW,YAAW,aAAa;IAC9C,IAAW,IAAI,IAAI,MAAM,CAA4B;IACrD,IAAW,eAAe,IAAI,MAAM,CAAwB;IAC5D,IAAW,iBAAiB,IAAI,MAAM,CAAwB;IAC9D,IAAW,WAAW,IAAI,MAAM,CAAoC;IACvD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;CAuBpF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import { compileModel } from '@keymanapp/kmc-model';
|
|
3
|
+
export class BuildModel {
|
|
4
|
+
get name() { return 'Lexical model'; }
|
|
5
|
+
get sourceExtension() { return '.model.ts'; }
|
|
6
|
+
get compiledExtension() { return '.model.js'; }
|
|
7
|
+
get description() { return 'Build a lexical model'; }
|
|
8
|
+
async build(infile, options) {
|
|
9
|
+
let outputFilename = options.outFile ? options.outFile : infile.replace(/\.ts$/i, this.compiledExtension);
|
|
10
|
+
let code = null;
|
|
11
|
+
// Compile:
|
|
12
|
+
try {
|
|
13
|
+
code = compileModel(infile);
|
|
14
|
+
}
|
|
15
|
+
catch (e) {
|
|
16
|
+
console.error(e);
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
if (!code) {
|
|
20
|
+
console.error('Compilation failed.');
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
// Output:
|
|
24
|
+
fs.writeFileSync(outputFilename, code, 'utf8');
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=BuildModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildModel.js","sourceRoot":"","sources":["../../../src/activities/BuildModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,OAAO,UAAU;IACrB,IAAW,IAAI,KAAa,OAAO,eAAe,CAAC,CAAC,CAAC;IACrD,IAAW,eAAe,KAAa,OAAO,WAAW,CAAC,CAAC,CAAC;IAC5D,IAAW,iBAAiB,KAAa,OAAO,WAAW,CAAC,CAAC,CAAC;IAC9D,IAAW,WAAW,KAAa,OAAO,uBAAuB,CAAC,CAAC,CAAC;IAC7D,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,OAA6B;QAC9D,IAAI,cAAc,GAAW,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAElH,IAAI,IAAI,GAAG,IAAI,CAAC;QAEhB,WAAW;QACX,IAAI;YACF,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;SAC7B;QAAC,OAAM,CAAC,EAAE;YACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,KAAK,CAAC;SACd;QAED,IAAG,CAAC,IAAI,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;YACpC,OAAO,KAAK,CAAC;SACd;QAED,UAAU;QACV,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/C,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BuildActivity, BuildActivityOptions } from './BuildActivity.js';
|
|
2
|
+
export declare class BuildPackage implements BuildActivity {
|
|
3
|
+
get name(): string;
|
|
4
|
+
get sourceExtension(): string;
|
|
5
|
+
get compiledExtension(): string;
|
|
6
|
+
get description(): string;
|
|
7
|
+
build(infile: string, options: BuildActivityOptions): Promise<boolean>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=BuildPackage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildPackage.d.ts","sourceRoot":"","sources":["../../../src/activities/BuildPackage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAGzE,qBAAa,YAAa,YAAW,aAAa;IAChD,IAAW,IAAI,IAAI,MAAM,CAAsB;IAC/C,IAAW,eAAe,IAAI,MAAM,CAAmB;IACvD,IAAW,iBAAiB,IAAI,MAAM,CAAmB;IACzD,IAAW,WAAW,IAAI,MAAM,CAAsC;IACzD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;CA0BpF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import KmpCompiler from '@keymanapp/kmc-package';
|
|
3
|
+
export class BuildPackage {
|
|
4
|
+
get name() { return 'Package'; }
|
|
5
|
+
get sourceExtension() { return '.kps'; }
|
|
6
|
+
get compiledExtension() { return '.kmp'; }
|
|
7
|
+
get description() { return 'Build a Keyman package'; }
|
|
8
|
+
async build(infile, options) {
|
|
9
|
+
let outputFilename = options.outFile ? options.outFile : infile.replace(/\.kps$/i, this.compiledExtension);
|
|
10
|
+
//
|
|
11
|
+
// Load .kps source data
|
|
12
|
+
//
|
|
13
|
+
let kpsString = fs.readFileSync(infile, 'utf8');
|
|
14
|
+
let kmpCompiler = new KmpCompiler();
|
|
15
|
+
let kmpJsonData = kmpCompiler.transformKpsToKmpObject(kpsString, infile);
|
|
16
|
+
//
|
|
17
|
+
// Build the .kmp package file
|
|
18
|
+
//
|
|
19
|
+
let data = await kmpCompiler.buildKmpFile(infile, kmpJsonData);
|
|
20
|
+
if (data) {
|
|
21
|
+
fs.writeFileSync(outputFilename, data, 'binary');
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
// TODO error logging
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=BuildPackage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildPackage.js","sourceRoot":"","sources":["../../../src/activities/BuildPackage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,MAAM,OAAO,YAAY;IACvB,IAAW,IAAI,KAAa,OAAO,SAAS,CAAC,CAAC,CAAC;IAC/C,IAAW,eAAe,KAAa,OAAO,MAAM,CAAC,CAAC,CAAC;IACvD,IAAW,iBAAiB,KAAa,OAAO,MAAM,CAAC,CAAC,CAAC;IACzD,IAAW,WAAW,KAAc,OAAO,wBAAwB,CAAC,CAAC,CAAC;IAC/D,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,OAA6B;QAE9D,IAAI,cAAc,GAAW,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEnH,EAAE;QACF,wBAAwB;QACxB,EAAE;QAEF,IAAI,SAAS,GAAW,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QACpC,IAAI,WAAW,GAAG,WAAW,CAAC,uBAAuB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAEzE,EAAE;QACF,8BAA8B;QAC9B,EAAE;QAEF,IAAI,IAAI,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC/D,IAAG,IAAI,EAAE;YACP,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;SAClD;aAAM;YACL,qBAAqB;YACrB,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BuildActivity, BuildActivityOptions } from './BuildActivity.js';
|
|
2
|
+
export declare class BuildProject implements BuildActivity {
|
|
3
|
+
get name(): string;
|
|
4
|
+
get sourceExtension(): string;
|
|
5
|
+
get compiledExtension(): string;
|
|
6
|
+
get description(): string;
|
|
7
|
+
build(infile: string, options: BuildActivityOptions): Promise<boolean>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=BuildProject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildProject.d.ts","sourceRoot":"","sources":["../../../src/activities/BuildProject.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAKzE,qBAAa,YAAa,YAAW,aAAa;IAChD,IAAW,IAAI,IAAI,MAAM,CAAsB;IAC/C,IAAW,eAAe,IAAI,MAAM,CAA8B;IAClE,IAAW,iBAAiB,IAAI,MAAM,CAAiB;IACvD,IAAW,WAAW,IAAI,MAAM,CAAyD;IAC5E,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;CAIpF"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import { KeymanDeveloperProject, KPJFileReader } from '@keymanapp/common-types';
|
|
2
|
-
import { NodeCompilerCallbacks } from '../util/NodeCompilerCallbacks.js';
|
|
3
|
-
import { buildKmnKeyboard } from './buildKmnKeyboard.js';
|
|
4
1
|
import * as path from 'path';
|
|
5
2
|
import * as fs from 'fs';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
import { KeymanDeveloperProject, KPJFileReader } from '@keymanapp/common-types';
|
|
4
|
+
import { NodeCompilerCallbacks } from '../util/NodeCompilerCallbacks.js';
|
|
5
|
+
import { buildActivities } from './buildActivities.js';
|
|
6
|
+
const PROJECT_EXTENSION = '.kpj';
|
|
7
|
+
export class BuildProject {
|
|
8
|
+
get name() { return 'Project'; }
|
|
9
|
+
get sourceExtension() { return PROJECT_EXTENSION; }
|
|
10
|
+
get compiledExtension() { return null; }
|
|
11
|
+
get description() { return 'Build a keyboard or lexical model project'; }
|
|
12
|
+
async build(infile, options) {
|
|
13
|
+
let builder = new ProjectBuilder(infile, options);
|
|
14
|
+
return builder.run();
|
|
15
|
+
}
|
|
12
16
|
}
|
|
13
17
|
class ProjectBuilder {
|
|
14
18
|
callbacks = new NodeCompilerCallbacks();
|
|
@@ -29,21 +33,15 @@ class ProjectBuilder {
|
|
|
29
33
|
if (!this.project) {
|
|
30
34
|
return false;
|
|
31
35
|
}
|
|
32
|
-
//
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (!await this.buildProjectTargets(buildModel, '.model.ts', '.model.js')) {
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
// Build all packages in the project
|
|
45
|
-
if (!await this.buildProjectTargets(buildPackage, '.kps', '.kmp')) {
|
|
46
|
-
return false;
|
|
36
|
+
// Go through the various file types and build them
|
|
37
|
+
for (let builder of buildActivities) {
|
|
38
|
+
if (builder.sourceExtension == PROJECT_EXTENSION) {
|
|
39
|
+
// We don't support nested projects
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (!await this.buildProjectTargets(builder)) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
47
45
|
}
|
|
48
46
|
// TODO: generate .keyboard_info from .kps + etc (and support merge of
|
|
49
47
|
// $PROJECTPATH/.keyboard_info for version 1.0 projects)
|
|
@@ -85,23 +83,23 @@ class ProjectBuilder {
|
|
|
85
83
|
const project = reader.transform(this.infile, kpj);
|
|
86
84
|
return project;
|
|
87
85
|
}
|
|
88
|
-
async buildProjectTargets(
|
|
86
|
+
async buildProjectTargets(activity) {
|
|
89
87
|
let result = true;
|
|
90
88
|
for (let file of this.project.files) {
|
|
91
|
-
if (file.fileType.toLowerCase() ==
|
|
92
|
-
result = await this.buildTarget(file,
|
|
89
|
+
if (file.fileType.toLowerCase() == activity.sourceExtension) {
|
|
90
|
+
result = await this.buildTarget(file, activity) && result;
|
|
93
91
|
}
|
|
94
92
|
}
|
|
95
93
|
return result;
|
|
96
94
|
}
|
|
97
|
-
async buildTarget(file,
|
|
95
|
+
async buildTarget(file, activity) {
|
|
98
96
|
const options = { ...this.options };
|
|
99
|
-
options.outFile = this.project.resolveOutputFilePath(this.infile, file,
|
|
97
|
+
options.outFile = this.project.resolveOutputFilePath(this.infile, file, activity.sourceExtension, activity.compiledExtension);
|
|
100
98
|
const infile = this.project.resolveInputFilePath(this.infile, file);
|
|
101
99
|
// TODO: callbacks.reportMessage, improve logging and make consistent
|
|
102
100
|
console.log(`Building ${infile}\n Output ${options.outFile}`);
|
|
103
101
|
fs.mkdirSync(path.dirname(options.outFile), { recursive: true });
|
|
104
|
-
let result = await
|
|
102
|
+
let result = await activity.build(infile, options);
|
|
105
103
|
if (result) {
|
|
106
104
|
console.log(`${path.basename(infile)} built successfully.`);
|
|
107
105
|
}
|
|
@@ -111,4 +109,4 @@ class ProjectBuilder {
|
|
|
111
109
|
return result;
|
|
112
110
|
}
|
|
113
111
|
}
|
|
114
|
-
//# sourceMappingURL=
|
|
112
|
+
//# sourceMappingURL=BuildProject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildProject.js","sourceRoot":"","sources":["../../../src/activities/BuildProject.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildActivities.d.ts","sourceRoot":"","sources":["../../../src/activities/buildActivities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AASnD,eAAO,MAAM,eAAe,EAAE,aAAa,EAM1C,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BuildKmnKeyboard } from './BuildKmnKeyboard.js';
|
|
2
|
+
import { BuildLdmlKeyboard } from './BuildLdmlKeyboard.js';
|
|
3
|
+
import { BuildModel } from './BuildModel.js';
|
|
4
|
+
import { BuildPackage } from './BuildPackage.js';
|
|
5
|
+
import { BuildProject } from './BuildProject.js';
|
|
6
|
+
// These builders are listed in the order that files need to be built in
|
|
7
|
+
// projects. Packages depend on .kmn, .xml and .model.ts file types
|
|
8
|
+
export const buildActivities = [
|
|
9
|
+
new BuildKmnKeyboard(),
|
|
10
|
+
new BuildLdmlKeyboard(),
|
|
11
|
+
new BuildModel(),
|
|
12
|
+
new BuildPackage(),
|
|
13
|
+
new BuildProject()
|
|
14
|
+
];
|
|
15
|
+
//# sourceMappingURL=buildActivities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildActivities.js","sourceRoot":"","sources":["../../../src/activities/buildActivities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,wEAAwE;AACxE,mEAAmE;AACnE,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C,IAAI,gBAAgB,EAAE;IACtB,IAAI,iBAAiB,EAAE;IACvB,IAAI,UAAU,EAAE;IAChB,IAAI,YAAY,EAAE;IAClB,IAAI,YAAY,EAAE;CACnB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function buildTestData(infile: string, options:
|
|
1
|
+
import { BuildActivityOptions } from './BuildActivity.js';
|
|
2
|
+
export declare function buildTestData(infile: string, options: BuildActivityOptions): void;
|
|
3
3
|
//# sourceMappingURL=buildTestData.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildTestData.d.ts","sourceRoot":"","sources":["../../../src/activities/buildTestData.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"buildTestData.d.ts","sourceRoot":"","sources":["../../../src/activities/buildTestData.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,QAkB1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildTestData.js","sourceRoot":"","sources":["../../../src/activities/buildTestData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"buildTestData.js","sourceRoot":"","sources":["../../../src/activities/buildTestData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,OAA6B;IACzE,IAAI,eAAe,GAAwB;QACzC,KAAK,EAAE,KAAK;QACZ,kBAAkB,EAAE,KAAK;KAC1B,CAAC;IAEF,IAAI,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACrD,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO;KACR;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC;IAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,6BAA6B,WAAW,EAAE,CAAC,CAAC;IACxD,EAAE;SACD,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACpE,CAAC;AACD,SAAS,YAAY,CAAC,aAAqB,EAAE,OAA4B;IACvE,MAAM,CAAC,GAAsB,IAAI,qBAAqB,EAAE,CAAC;IACzD,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACvC,IAAI,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/commands/build.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/commands/build.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,QAkB5C"}
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { buildLdmlKeyboard } from '../activities/buildLdmlKeyboard.js';
|
|
5
|
-
import { buildModel } from '../activities/buildModel.js';
|
|
6
|
-
import { buildProject } from '../activities/buildProject.js';
|
|
7
|
-
;
|
|
2
|
+
import { buildActivities } from '../activities/buildActivities.js';
|
|
3
|
+
import { BuildProject } from '../activities/BuildProject.js';
|
|
8
4
|
export function declareBuild(program) {
|
|
9
5
|
program
|
|
10
6
|
.command('build [infile...]')
|
|
11
7
|
.description('Build a source file into a final file')
|
|
12
8
|
.option('-d, --debug', 'Include debug information in output')
|
|
13
|
-
.option('-o, --out-file <filename>', '
|
|
9
|
+
.option('-o, --out-file <filename>', 'Override the default path and filename for the output file')
|
|
14
10
|
.option('--no-compiler-version', 'Exclude compiler version metadata from output')
|
|
15
11
|
.action((infiles, options) => {
|
|
16
12
|
let p = [];
|
|
@@ -26,25 +22,25 @@ export function declareBuild(program) {
|
|
|
26
22
|
}
|
|
27
23
|
async function build(infile, options) {
|
|
28
24
|
console.log(`Building ${infile}`);
|
|
29
|
-
if (
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return buildKmnKeyboard(infile, options);
|
|
34
|
-
}
|
|
35
|
-
if (infile.endsWith('.kps')) {
|
|
36
|
-
return buildPackage(infile, options);
|
|
37
|
-
}
|
|
38
|
-
if (infile.endsWith('.model.ts')) {
|
|
39
|
-
return buildModel(infile, options);
|
|
40
|
-
}
|
|
41
|
-
if (infile.endsWith('.kpj')) {
|
|
42
|
-
return buildProject(infile, options);
|
|
25
|
+
if (!fs.existsSync(infile)) {
|
|
26
|
+
// TODO: consolidate errors
|
|
27
|
+
console.error(`File ${infile} does not exist`);
|
|
28
|
+
process.exit(2);
|
|
43
29
|
}
|
|
30
|
+
// If infile is a directory, then we treat that as a project and build it
|
|
44
31
|
if (fs.statSync(infile).isDirectory()) {
|
|
45
|
-
return
|
|
32
|
+
return (new BuildProject()).build(infile, options);
|
|
33
|
+
}
|
|
34
|
+
// Otherwise, if it's one of our known file extensions, we build it
|
|
35
|
+
let extensions = '';
|
|
36
|
+
for (let build of buildActivities) {
|
|
37
|
+
if (infile.toLowerCase().endsWith(build.sourceExtension)) {
|
|
38
|
+
return build.build(infile, options);
|
|
39
|
+
}
|
|
40
|
+
extensions += build.sourceExtension + ', ';
|
|
46
41
|
}
|
|
47
|
-
|
|
42
|
+
// TODO: consolidate errors
|
|
43
|
+
console.error(`Unrecognised input file ${infile}, expecting ${extensions}or project folder`);
|
|
48
44
|
process.exit(2);
|
|
49
45
|
}
|
|
50
46
|
//# sourceMappingURL=build.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAGzB,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,OAAO;SACJ,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,aAAa,EAAE,qCAAqC,CAAC;SAC5D,MAAM,CAAC,2BAA2B,EAAE,4DAA4D,CAAC;SACjG,MAAM,CAAC,uBAAuB,EAAE,+CAA+C,CAAC;SAChF,MAAM,CAAC,CAAC,OAAiB,EAAE,OAAY,EAAE,EAAE;QAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,IAAG,CAAC,OAAO,CAAC,MAAM,EAAE;YAClB,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACtC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;SAC7B;QACD,KAAI,IAAI,MAAM,IAAI,OAAO,EAAE;YACzB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;SAChC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,MAAc,EAAE,OAA6B;IAChE,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC;IAElC,IAAG,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QACzB,2BAA2B;QAC3B,OAAO,CAAC,KAAK,CAAC,QAAQ,MAAM,iBAAiB,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,yEAAyE;IACzE,IAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE;QACpC,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpD;IAED,mEAAmE;IACnE,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,KAAI,IAAI,KAAK,IAAI,eAAe,EAAE;QAChC,IAAG,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;YACvD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACrC;QACD,UAAU,IAAI,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;KAC5C;IAED,2BAA2B;IAC3B,OAAO,CAAC,KAAK,CAAC,2BAA2B,MAAM,eAAe,UAAU,mBAAmB,CAAC,CAAC;IAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -37,15 +37,18 @@
|
|
|
37
37
|
"kmlmi": "build/src/kmlmi.js"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@keymanapp/keyman-version": "
|
|
41
|
-
"@keymanapp/common-types": "
|
|
42
|
-
"@keymanapp/kmc-keyboard": "
|
|
43
|
-
"@keymanapp/kmc-model": "
|
|
44
|
-
"@keymanapp/kmc-model-info": "
|
|
45
|
-
"@keymanapp/kmc-package": "
|
|
46
|
-
"@keymanapp/models-types": "
|
|
40
|
+
"@keymanapp/keyman-version": "17.0.87-alpha",
|
|
41
|
+
"@keymanapp/common-types": "17.0.87-alpha",
|
|
42
|
+
"@keymanapp/kmc-keyboard": "17.0.87-alpha",
|
|
43
|
+
"@keymanapp/kmc-model": "17.0.87-alpha",
|
|
44
|
+
"@keymanapp/kmc-model-info": "17.0.87-alpha",
|
|
45
|
+
"@keymanapp/kmc-package": "17.0.87-alpha",
|
|
46
|
+
"@keymanapp/models-types": "17.0.87-alpha",
|
|
47
47
|
"commander": "^10.0.0"
|
|
48
48
|
},
|
|
49
|
+
"files": [
|
|
50
|
+
"build/src/"
|
|
51
|
+
],
|
|
49
52
|
"devDependencies": {
|
|
50
53
|
"@types/chai": "^4.1.7",
|
|
51
54
|
"@types/mocha": "^5.2.7",
|
|
@@ -69,5 +72,5 @@
|
|
|
69
72
|
"type": "git",
|
|
70
73
|
"url": "git+https://github.com/keymanapp/keyman.git"
|
|
71
74
|
},
|
|
72
|
-
"version": "17.0.
|
|
75
|
+
"version": "17.0.87-alpha"
|
|
73
76
|
}
|