@keymanapp/kmc 17.0.293-beta → 17.0.294-beta
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.js +106 -108
- package/build/src/commands/analyze.js.map +1 -1
- package/build/src/commands/build.js +166 -168
- package/build/src/commands/build.js.map +1 -1
- package/build/src/commands/buildClasses/BuildActivity.js +31 -33
- package/build/src/commands/buildClasses/BuildActivity.js.map +1 -1
- package/build/src/commands/buildClasses/BuildKeyboardInfo.js +47 -49
- package/build/src/commands/buildClasses/BuildKeyboardInfo.js.map +1 -1
- package/build/src/commands/buildClasses/BuildKmnKeyboard.js +35 -37
- package/build/src/commands/buildClasses/BuildKmnKeyboard.js.map +1 -1
- package/build/src/commands/buildClasses/BuildLdmlKeyboard.js +19 -21
- package/build/src/commands/buildClasses/BuildLdmlKeyboard.js.map +1 -1
- package/build/src/commands/buildClasses/BuildModel.js +13 -15
- package/build/src/commands/buildClasses/BuildModel.js.map +1 -1
- package/build/src/commands/buildClasses/BuildModelInfo.js +73 -75
- package/build/src/commands/buildClasses/BuildModelInfo.js.map +1 -1
- package/build/src/commands/buildClasses/BuildPackage.js +13 -15
- package/build/src/commands/buildClasses/BuildPackage.js.map +1 -1
- package/build/src/commands/buildClasses/BuildProject.js +116 -118
- package/build/src/commands/buildClasses/BuildProject.js.map +1 -1
- package/build/src/commands/buildClasses/buildActivities.js +21 -23
- package/build/src/commands/buildClasses/buildActivities.js.map +1 -1
- package/build/src/commands/buildTestData/index.js +39 -41
- package/build/src/commands/buildTestData/index.js.map +1 -1
- package/build/src/commands/buildWindowsPackageInstaller/index.js +43 -45
- package/build/src/commands/buildWindowsPackageInstaller/index.js.map +1 -1
- package/build/src/commands/messageCommand.js +237 -239
- package/build/src/commands/messageCommand.js.map +1 -1
- package/build/src/kmc.js +57 -58
- package/build/src/kmc.js.map +1 -1
- package/build/src/kmlmc.js +57 -59
- package/build/src/kmlmc.js.map +1 -1
- package/build/src/kmlmp.js +46 -48
- package/build/src/kmlmp.js.map +1 -1
- package/build/src/messages/infrastructureMessages.js +75 -77
- package/build/src/messages/infrastructureMessages.js.map +1 -1
- package/build/src/messages/messageNamespaces.js +39 -41
- package/build/src/messages/messageNamespaces.js.map +1 -1
- package/build/src/util/NodeCompilerCallbacks.js +221 -223
- package/build/src/util/NodeCompilerCallbacks.js.map +1 -1
- package/build/src/util/TestKeymanSentry.d.ts +3 -2
- package/build/src/util/TestKeymanSentry.d.ts.map +1 -1
- package/build/src/util/TestKeymanSentry.js +51 -53
- package/build/src/util/TestKeymanSentry.js.map +1 -1
- package/build/src/util/baseOptions.js +24 -26
- package/build/src/util/baseOptions.js.map +1 -1
- package/build/src/util/calculateSourcePath.js +18 -20
- package/build/src/util/calculateSourcePath.js.map +1 -1
- package/build/src/util/extendedCompilerOptions.js +123 -125
- package/build/src/util/extendedCompilerOptions.js.map +1 -1
- package/build/src/util/fileLists.js +46 -48
- package/build/src/util/fileLists.js.map +1 -1
- package/build/src/util/getDeveloperBinPath.js +36 -38
- package/build/src/util/getDeveloperBinPath.js.map +1 -1
- package/build/src/util/getLastGitCommitDate.js +44 -46
- package/build/src/util/getLastGitCommitDate.js.map +1 -1
- package/build/src/util/kmcSentryOptions.d.ts +8 -0
- package/build/src/util/kmcSentryOptions.d.ts.map +1 -0
- package/build/src/util/kmcSentryOptions.js +20 -0
- package/build/src/util/kmcSentryOptions.js.map +1 -0
- package/build/src/util/projectLoader.js +51 -53
- package/build/src/util/projectLoader.js.map +1 -1
- package/build/src/util/projectRunner.js +27 -29
- package/build/src/util/projectRunner.js.map +1 -1
- package/build/src/util/sysexits.js +7 -9
- package/build/src/util/sysexits.js.map +1 -1
- package/package.json +12 -12
|
@@ -1,38 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import * as
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
//# debugId=08eca393-fa84-54a6-9451-5b9774b35d54
|
|
38
|
-
//# sourceMappingURL=getDeveloperBinPath.js.map
|
|
1
|
+
import { fileURLToPath } from 'url';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as fs from 'fs';
|
|
4
|
+
/**
|
|
5
|
+
* Locates the Keyman Developer bin folder, checking first if this is running
|
|
6
|
+
* from the source repository (using the presence of the KEYMAN_ROOT environment
|
|
7
|
+
* variable), and if not, checking for the presence of kmconvert.exe in each
|
|
8
|
+
* parent folder recursively until we reach the root of the filesystem.
|
|
9
|
+
* @returns string | null
|
|
10
|
+
*/
|
|
11
|
+
export function getDeveloperBinPath() {
|
|
12
|
+
// if running in source repo, then we always look in developer/bin/
|
|
13
|
+
const keymanRoot = process.env['KEYMAN_ROOT'];
|
|
14
|
+
if (keymanRoot) {
|
|
15
|
+
// https://stackoverflow.com/a/45242825/1836776 (imperfect due to
|
|
16
|
+
// possibility of '..foo', but good enough)
|
|
17
|
+
const rel = path.relative(keymanRoot, import.meta.url);
|
|
18
|
+
if (rel && !rel.startsWith('..') && !path.isAbsolute(rel)) {
|
|
19
|
+
return path.join(keymanRoot, 'developer', 'bin');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// Otherwise, we will look in parent folders until we find kmconvert.exe
|
|
23
|
+
// TODO: if we eliminate kmconvert.exe, we'll need to do this some other way?
|
|
24
|
+
let p = fileURLToPath(import.meta.url);
|
|
25
|
+
const root = path.parse(p).root.toLowerCase(); // lower-case for drive letter on Windows
|
|
26
|
+
p = path.dirname(p);
|
|
27
|
+
do {
|
|
28
|
+
if (fs.existsSync(path.join(p, 'kmconvert.exe'))) {
|
|
29
|
+
return p;
|
|
30
|
+
}
|
|
31
|
+
p = path.dirname(p);
|
|
32
|
+
} while (p.toLowerCase() != root);
|
|
33
|
+
// kmconvert.exe was not found on the path
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=getDeveloperBinPath.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"version":3,"file":"getDeveloperBinPath.js","sourceRoot":"","sources":["../../../src/util/getDeveloperBinPath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB;IACjC,mEAAmE;IACnE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC9C,IAAI,UAAU,EAAE;QACd,iEAAiE;QACjE,2CAA2C;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACzD,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;SAClD;KACF;IAED,wEAAwE;IACxE,6EAA6E;IAC7E,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,yCAAyC;IACxF,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,GAAG;QACD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE;YAChD,OAAO,CAAC,CAAC;SACV;QACD,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KACrB,QAAQ,CAAC,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE;IAElC,0CAA0C;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,46 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
result
|
|
38
|
-
//
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
//# debugId=710ddc85-73e3-5f47-adc8-32358798bb51
|
|
46
|
-
//# sourceMappingURL=getLastGitCommitDate.js.map
|
|
1
|
+
import { execFileSync } from 'child_process';
|
|
2
|
+
// RFC3339 pattern, UTC
|
|
3
|
+
export const expectedGitDateFormat = /^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\dZ$/;
|
|
4
|
+
/**
|
|
5
|
+
* Returns the date and time of the last commit from git for the passed in path
|
|
6
|
+
* @param path Path for which to retrieve the last commit message
|
|
7
|
+
* @returns string, in RFC3339, 'YYYY-MM-DDThh:nn:ssZ'
|
|
8
|
+
*/
|
|
9
|
+
export function getLastGitCommitDate(path) {
|
|
10
|
+
// TZ=UTC0 git log -1 --no-merges --date=format:%Y-%m-%dT%H:%M:%SZ --format=%ad
|
|
11
|
+
let result = null;
|
|
12
|
+
try {
|
|
13
|
+
result = execFileSync('git', [
|
|
14
|
+
'log',
|
|
15
|
+
'-1',
|
|
16
|
+
'--no-merges',
|
|
17
|
+
'--date=format:%Y-%m-%dT%H:%M:%SZ',
|
|
18
|
+
'--format=%ad' // emit only the commit date
|
|
19
|
+
], {
|
|
20
|
+
env: { ...process.env, TZ: 'TZ0' },
|
|
21
|
+
encoding: 'utf-8',
|
|
22
|
+
windowsHide: true,
|
|
23
|
+
cwd: path,
|
|
24
|
+
stdio: ['pipe', 'pipe', 'pipe'] // all output via pipe, so we don't get git errors on console
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
// If git is not available, or the file is not in-repo, then it is probably
|
|
29
|
+
// fine to just silently return null, as the only machines where this is
|
|
30
|
+
// critical are the CI machines where we build and deploy .keyboard_info
|
|
31
|
+
// files, and where git will always be available. It would be possible to
|
|
32
|
+
// have this raise an error in CI environments, but the chance of error
|
|
33
|
+
// seems low.
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
result = result.trim();
|
|
37
|
+
// We'll only return the result if it walks like a date, swims like a date,
|
|
38
|
+
// and quacks like a date.
|
|
39
|
+
if (!result.match(expectedGitDateFormat)) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=getLastGitCommitDate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"version":3,"file":"getLastGitCommitDate.js","sourceRoot":"","sources":["../../../src/util/getLastGitCommitDate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,uBAAuB;AACvB,MAAM,CAAC,MAAM,qBAAqB,GAAG,sCAAsC,CAAC;AAE5E;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,+EAA+E;IAC/E,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,IAAI;QACF,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE;YAC3B,KAAK;YACL,IAAI;YACJ,aAAa;YACb,kCAAkC;YAClC,cAAc,CAAwB,4BAA4B;SACnE,EAAE;YACD,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE;YAClC,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,IAAI;YACT,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAO,6DAA6D;SACpG,CAAC,CAAC;KACJ;IAAC,OAAO,CAAC,EAAE;QACV,2EAA2E;QAC3E,wEAAwE;QACxE,wEAAwE;QACxE,yEAAyE;QACzE,uEAAuE;QACvE,aAAa;QACb,OAAO,IAAI,CAAC;KACb;IAED,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAEvB,2EAA2E;IAC3E,0BAA0B;IAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE;QACxC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SentryNodeOptions } from "@keymanapp/developer-utils";
|
|
2
|
+
/**
|
|
3
|
+
* Rewrites sourcemap paths for the esbuild distribution of kmc (as used in
|
|
4
|
+
* Keyman Developer itself) /<arbitrary-path>/kmc.mjs to /dist/kmc.mjs, so that
|
|
5
|
+
* Sentry can pick up the mapping
|
|
6
|
+
*/
|
|
7
|
+
export declare const kmcSentryOptions: SentryNodeOptions;
|
|
8
|
+
//# sourceMappingURL=kmcSentryOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kmcSentryOptions.d.ts","sourceRoot":"","sources":["../../../src/util/kmcSentryOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,iBAa9B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rewrites sourcemap paths for the esbuild distribution of kmc (as used in
|
|
3
|
+
* Keyman Developer itself) /<arbitrary-path>/kmc.mjs to /dist/kmc.mjs, so that
|
|
4
|
+
* Sentry can pick up the mapping
|
|
5
|
+
*/
|
|
6
|
+
export const kmcSentryOptions = {
|
|
7
|
+
beforeSend: function (event) {
|
|
8
|
+
const frames = event?.exception?.values?.[0]?.stacktrace?.frames;
|
|
9
|
+
if (frames) {
|
|
10
|
+
frames.forEach(frame => {
|
|
11
|
+
const filename = frame.filename.match(/[^/]+$/)[0];
|
|
12
|
+
if (filename.endsWith('.mjs')) {
|
|
13
|
+
frame.filename = `/dist/${filename}`;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return event;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=kmcSentryOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kmcSentryOptions.js","sourceRoot":"","sources":["../../../src/util/kmcSentryOptions.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAsB;IACjD,UAAU,EAAE,UAAU,KAAK;QACzB,MAAM,MAAM,GAAG,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC;QACjE,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBAC7B,KAAK,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,CAAC;iBACtC;YACH,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC"}
|
|
@@ -1,53 +1,51 @@
|
|
|
1
|
-
|
|
2
|
-
import * as
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
infile
|
|
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
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
kpj
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
//# debugId=5becf045-25c3-50d3-b97a-6c7e280f24de
|
|
53
|
-
//# sourceMappingURL=projectLoader.js.map
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import { KeymanDeveloperProject, KeymanFileTypes, KPJFileReader } from "@keymanapp/common-types";
|
|
4
|
+
import { InfrastructureMessages } from "../messages/infrastructureMessages.js";
|
|
5
|
+
export const isProject = (filename) => fs.existsSync(filename) && (fs.statSync(filename).isDirectory() ||
|
|
6
|
+
KeymanFileTypes.sourceTypeFromFilename(filename) == ".kpj" /* KeymanFileTypes.Source.Project */);
|
|
7
|
+
export function loadProject(infile, callbacks) {
|
|
8
|
+
infile = path.resolve(infile.replace(/\\/g, '/'));
|
|
9
|
+
if (fs.existsSync(infile) && fs.statSync(infile).isDirectory()) {
|
|
10
|
+
// This is a project folder, look for folder-name.kpj
|
|
11
|
+
infile = path.join(infile, path.basename(infile) + ".kpj" /* KeymanFileTypes.Source.Project */);
|
|
12
|
+
}
|
|
13
|
+
// infile should be the .kpj
|
|
14
|
+
if (!infile.endsWith(".kpj" /* KeymanFileTypes.Source.Project */)) {
|
|
15
|
+
callbacks.reportMessage(InfrastructureMessages.Error_NotAProjectFile({ filename: infile }));
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
const project = callbacks.fs.existsSync(infile) ?
|
|
19
|
+
loadProjectFromFile(infile, callbacks) :
|
|
20
|
+
loadDefaultProjectFromFolder(infile, callbacks);
|
|
21
|
+
return project;
|
|
22
|
+
}
|
|
23
|
+
function loadDefaultProjectFromFolder(infile, callbacks) {
|
|
24
|
+
// The folder does not contain a .kpj, so construct a default 2.0 .kpj
|
|
25
|
+
const project = new KeymanDeveloperProject(infile, '2.0', callbacks);
|
|
26
|
+
if (!project.populateFiles()) {
|
|
27
|
+
callbacks.reportMessage(InfrastructureMessages.Error_InvalidProjectFolder({ folderName: path.dirname(infile) }));
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
return project;
|
|
31
|
+
}
|
|
32
|
+
function loadProjectFromFile(infile, callbacks) {
|
|
33
|
+
const kpjData = callbacks.loadFile(infile);
|
|
34
|
+
const reader = new KPJFileReader(callbacks);
|
|
35
|
+
let kpj = null;
|
|
36
|
+
try {
|
|
37
|
+
kpj = reader.read(kpjData);
|
|
38
|
+
if (kpj.KeymanDeveloperProject?.Options?.Version && kpj.KeymanDeveloperProject.Options.Version != "1.0" && kpj.KeymanDeveloperProject.Options.Version != "2.0") {
|
|
39
|
+
callbacks.reportMessage(InfrastructureMessages.Error_UnsupportedProjectVersion({ version: kpj.KeymanDeveloperProject.Options.Version }));
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
reader.validate(kpj);
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
callbacks.reportMessage(InfrastructureMessages.Error_InvalidProjectFile({ message: (e ?? '').toString() }));
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
const project = reader.transform(infile, kpj);
|
|
49
|
+
return project;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=projectLoader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"version":3,"file":"projectLoader.js","sourceRoot":"","sources":["../../../src/util/projectLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
await
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
//# debugId=efdfba5f-2611-534b-8fc4-3d8ec12533e2
|
|
29
|
-
//# sourceMappingURL=projectRunner.js.map
|
|
1
|
+
import { KeymanFileTypes } from "@keymanapp/common-types";
|
|
2
|
+
import { isProject, loadProject } from './projectLoader.js';
|
|
3
|
+
async function runProject(callbacks, filename, callback) {
|
|
4
|
+
const project = loadProject(filename, callbacks);
|
|
5
|
+
for (const file of project.files) {
|
|
6
|
+
if (KeymanFileTypes.filenameIs(file.filename, ".kpj" /* KeymanFileTypes.Source.Project */)) {
|
|
7
|
+
// Don't accidentally recurse into projects
|
|
8
|
+
continue;
|
|
9
|
+
}
|
|
10
|
+
if (!await callback(project.resolveInputFilePath(file))) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
export async function runOnFiles(callbacks, filenames, callback) {
|
|
17
|
+
for (let filename of filenames) {
|
|
18
|
+
const result = isProject(filename) ?
|
|
19
|
+
await runProject(callbacks, filename, callback) :
|
|
20
|
+
await callback(filename);
|
|
21
|
+
if (!result) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=projectRunner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"version":3,"file":"projectRunner.js","sourceRoot":"","sources":["../../../src/util/projectRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE5D,KAAK,UAAU,UAAU,CAAC,SAA4B,EAAE,QAAgB,EAAE,QAA6C;IACrH,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEjD,KAAI,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;QAC/B,IAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,8CAAiC,EAAE;YAC5E,2CAA2C;YAC3C,SAAS;SACV;QACD,IAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE;YACtD,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,SAA4B,EAAE,SAAmB,EAAE,QAA6C;IAC/H,KAAI,IAAI,QAAQ,IAAI,SAAS,EAAE;QAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClC,MAAM,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YACjD,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAG,CAAC,MAAM,EAAE;YACV,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
//# debugId=ce0aa3c3-2acf-56d9-8264-5eb5ae854b8a
|
|
9
|
-
//# sourceMappingURL=sysexits.js.map
|
|
1
|
+
import { KeymanSentry } from "@keymanapp/developer-utils";
|
|
2
|
+
;
|
|
3
|
+
export async function exitProcess(exitCode) {
|
|
4
|
+
await KeymanSentry.close();
|
|
5
|
+
process.exit(exitCode);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=sysexits.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"version":3,"file":"sysexits.js","sourceRoot":"","sources":["../../../src/util/sysexits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AASzD,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAiB;IACjD,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC"}
|
package/package.json
CHANGED
|
@@ -34,17 +34,17 @@
|
|
|
34
34
|
"kmlmp": "build/src/kmlmp.js"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@keymanapp/common-types": "17.0.
|
|
38
|
-
"@keymanapp/developer-utils": "17.0.
|
|
39
|
-
"@keymanapp/keyman-version": "17.0.
|
|
40
|
-
"@keymanapp/kmc-analyze": "17.0.
|
|
41
|
-
"@keymanapp/kmc-keyboard-info": "17.0.
|
|
42
|
-
"@keymanapp/kmc-kmn": "17.0.
|
|
43
|
-
"@keymanapp/kmc-ldml": "17.0.
|
|
44
|
-
"@keymanapp/kmc-model": "17.0.
|
|
45
|
-
"@keymanapp/kmc-model-info": "17.0.
|
|
46
|
-
"@keymanapp/kmc-package": "17.0.
|
|
47
|
-
"@keymanapp/models-types": "17.0.
|
|
37
|
+
"@keymanapp/common-types": "17.0.294-beta",
|
|
38
|
+
"@keymanapp/developer-utils": "17.0.294-beta",
|
|
39
|
+
"@keymanapp/keyman-version": "17.0.294-beta",
|
|
40
|
+
"@keymanapp/kmc-analyze": "17.0.294-beta",
|
|
41
|
+
"@keymanapp/kmc-keyboard-info": "17.0.294-beta",
|
|
42
|
+
"@keymanapp/kmc-kmn": "17.0.294-beta",
|
|
43
|
+
"@keymanapp/kmc-ldml": "17.0.294-beta",
|
|
44
|
+
"@keymanapp/kmc-model": "17.0.294-beta",
|
|
45
|
+
"@keymanapp/kmc-model-info": "17.0.294-beta",
|
|
46
|
+
"@keymanapp/kmc-package": "17.0.294-beta",
|
|
47
|
+
"@keymanapp/models-types": "17.0.294-beta",
|
|
48
48
|
"@sentry/node": "^7.57.0",
|
|
49
49
|
"chalk": "^2.4.2",
|
|
50
50
|
"commander": "^10.0.0",
|
|
@@ -86,5 +86,5 @@
|
|
|
86
86
|
"type": "git",
|
|
87
87
|
"url": "git+https://github.com/keymanapp/keyman.git"
|
|
88
88
|
},
|
|
89
|
-
"version": "17.0.
|
|
89
|
+
"version": "17.0.294-beta"
|
|
90
90
|
}
|