@keymanapp/kmc 17.0.292-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.d.ts.map +1 -1
- package/build/src/commands/analyze.js +106 -107
- package/build/src/commands/analyze.js.map +1 -1
- package/build/src/commands/build.js +166 -168
- package/build/src/commands/build.js.map +1 -1
- package/build/src/commands/buildClasses/BuildActivity.js +31 -33
- package/build/src/commands/buildClasses/BuildActivity.js.map +1 -1
- package/build/src/commands/buildClasses/BuildKeyboardInfo.js +47 -49
- package/build/src/commands/buildClasses/BuildKeyboardInfo.js.map +1 -1
- package/build/src/commands/buildClasses/BuildKmnKeyboard.js +35 -37
- package/build/src/commands/buildClasses/BuildKmnKeyboard.js.map +1 -1
- package/build/src/commands/buildClasses/BuildLdmlKeyboard.js +19 -21
- package/build/src/commands/buildClasses/BuildLdmlKeyboard.js.map +1 -1
- package/build/src/commands/buildClasses/BuildModel.js +13 -15
- package/build/src/commands/buildClasses/BuildModel.js.map +1 -1
- package/build/src/commands/buildClasses/BuildModelInfo.js +73 -75
- package/build/src/commands/buildClasses/BuildModelInfo.js.map +1 -1
- package/build/src/commands/buildClasses/BuildPackage.js +13 -15
- package/build/src/commands/buildClasses/BuildPackage.js.map +1 -1
- package/build/src/commands/buildClasses/BuildProject.js +116 -118
- package/build/src/commands/buildClasses/BuildProject.js.map +1 -1
- package/build/src/commands/buildClasses/buildActivities.js +21 -23
- package/build/src/commands/buildClasses/buildActivities.js.map +1 -1
- package/build/src/commands/buildTestData/index.js +39 -41
- package/build/src/commands/buildTestData/index.js.map +1 -1
- package/build/src/commands/buildWindowsPackageInstaller/index.d.ts +1 -1
- package/build/src/commands/buildWindowsPackageInstaller/index.d.ts.map +1 -1
- package/build/src/commands/buildWindowsPackageInstaller/index.js +43 -45
- package/build/src/commands/buildWindowsPackageInstaller/index.js.map +1 -1
- package/build/src/commands/messageCommand.js +237 -239
- package/build/src/commands/messageCommand.js.map +1 -1
- package/build/src/kmc.js +57 -58
- package/build/src/kmc.js.map +1 -1
- package/build/src/kmlmc.js +57 -59
- package/build/src/kmlmc.js.map +1 -1
- package/build/src/kmlmp.js +46 -48
- package/build/src/kmlmp.js.map +1 -1
- package/build/src/messages/infrastructureMessages.js +75 -77
- package/build/src/messages/infrastructureMessages.js.map +1 -1
- package/build/src/messages/messageNamespaces.js +39 -41
- package/build/src/messages/messageNamespaces.js.map +1 -1
- package/build/src/util/NodeCompilerCallbacks.js +221 -223
- package/build/src/util/NodeCompilerCallbacks.js.map +1 -1
- package/build/src/util/TestKeymanSentry.d.ts +3 -2
- package/build/src/util/TestKeymanSentry.d.ts.map +1 -1
- package/build/src/util/TestKeymanSentry.js +51 -53
- package/build/src/util/TestKeymanSentry.js.map +1 -1
- package/build/src/util/baseOptions.js +24 -26
- package/build/src/util/baseOptions.js.map +1 -1
- package/build/src/util/calculateSourcePath.js +18 -20
- package/build/src/util/calculateSourcePath.js.map +1 -1
- package/build/src/util/extendedCompilerOptions.js +123 -125
- package/build/src/util/extendedCompilerOptions.js.map +1 -1
- package/build/src/util/fileLists.js +46 -48
- package/build/src/util/fileLists.js.map +1 -1
- package/build/src/util/getDeveloperBinPath.js +36 -38
- package/build/src/util/getDeveloperBinPath.js.map +1 -1
- package/build/src/util/getLastGitCommitDate.js +44 -46
- package/build/src/util/getLastGitCommitDate.js.map +1 -1
- package/build/src/util/kmcSentryOptions.d.ts +8 -0
- package/build/src/util/kmcSentryOptions.d.ts.map +1 -0
- package/build/src/util/kmcSentryOptions.js +20 -0
- package/build/src/util/kmcSentryOptions.js.map +1 -0
- package/build/src/util/projectLoader.js +51 -53
- package/build/src/util/projectLoader.js.map +1 -1
- package/build/src/util/projectRunner.js +27 -29
- package/build/src/util/projectRunner.js.map +1 -1
- package/build/src/util/sysexits.js +7 -9
- package/build/src/util/sysexits.js.map +1 -1
- package/package.json +12 -12
package/build/src/kmc.js
CHANGED
|
@@ -1,59 +1,58 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
await TestKeymanSentry.runTestIfCLRequested();
|
|
15
|
-
if (KeymanSentry.isEnabled()) {
|
|
16
|
-
KeymanSentry.init();
|
|
17
|
-
}
|
|
18
|
-
try {
|
|
19
|
-
await run();
|
|
20
|
-
}
|
|
21
|
-
catch (e) {
|
|
22
|
-
KeymanSentry.captureException(e);
|
|
23
|
-
}
|
|
24
|
-
// Ensure any messages reported to Sentry have had time to be uploaded before we
|
|
25
|
-
// exit. In most cases, this will be a no-op so should not affect performance.
|
|
26
|
-
await exitProcess(0);
|
|
27
|
-
async function run() {
|
|
28
|
-
await loadOptions();
|
|
29
|
-
/* Arguments */
|
|
30
|
-
const program = new Command();
|
|
31
|
-
program
|
|
32
|
-
.description('Keyman Developer Command Line Interface')
|
|
33
|
-
.configureHelp({
|
|
34
|
-
showGlobalOptions: true
|
|
35
|
-
})
|
|
36
|
-
.version(KEYMAN_VERSION.VERSION_WITH_TAG)
|
|
37
|
-
// This corresponds to an option tested in KeymanSentry.ts, which is
|
|
38
|
-
// searched for in process.argv, in order to avoid depending on Commander to
|
|
39
|
-
// start Sentry, and to ensure that we capture errors as early as possible
|
|
40
|
-
// in launch
|
|
41
|
-
.addOption(new Option('--no-error-reporting', 'Disable error reporting to keyman.com (overriding user settings)'))
|
|
42
|
-
.addOption(new Option('--error-reporting', 'Enable error reporting to keyman.com (overriding user settings)'));
|
|
43
|
-
declareBuild(program);
|
|
44
|
-
declareAnalyze(program);
|
|
45
|
-
declareMessage(program);
|
|
46
|
-
/* Future commands:
|
|
47
|
-
declareClean(program);
|
|
48
|
-
declareCopy(program);
|
|
49
|
-
declareRename(program);
|
|
50
|
-
declareGenerate(program);
|
|
51
|
-
declareImport(program);
|
|
52
|
-
declareTest(program);
|
|
53
|
-
declarePublish(program);
|
|
54
|
-
*/
|
|
55
|
-
await program.parseAsync(process.argv)
|
|
56
|
-
.catch(reason => console.error(reason));
|
|
57
|
-
}
|
|
58
|
-
//#
|
|
59
|
-
//# sourceMappingURL=kmc.js.map
|
|
2
|
+
/**
|
|
3
|
+
* kmc - Keyman Next Generation Compiler
|
|
4
|
+
*/
|
|
5
|
+
import { Command, Option } from 'commander';
|
|
6
|
+
import { declareBuild } from './commands/build.js';
|
|
7
|
+
import { declareAnalyze } from './commands/analyze.js';
|
|
8
|
+
import { KeymanSentry, loadOptions } from '@keymanapp/developer-utils';
|
|
9
|
+
import KEYMAN_VERSION from "@keymanapp/keyman-version";
|
|
10
|
+
import { TestKeymanSentry } from './util/TestKeymanSentry.js';
|
|
11
|
+
import { exitProcess } from './util/sysexits.js';
|
|
12
|
+
import { declareMessage } from './commands/messageCommand.js';
|
|
13
|
+
import { kmcSentryOptions } from './util/kmcSentryOptions.js';
|
|
14
|
+
await TestKeymanSentry.runTestIfCLRequested(kmcSentryOptions);
|
|
15
|
+
if (KeymanSentry.isEnabled()) {
|
|
16
|
+
KeymanSentry.init(kmcSentryOptions);
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
await run();
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
KeymanSentry.captureException(e);
|
|
23
|
+
}
|
|
24
|
+
// Ensure any messages reported to Sentry have had time to be uploaded before we
|
|
25
|
+
// exit. In most cases, this will be a no-op so should not affect performance.
|
|
26
|
+
await exitProcess(0);
|
|
27
|
+
async function run() {
|
|
28
|
+
await loadOptions();
|
|
29
|
+
/* Arguments */
|
|
30
|
+
const program = new Command();
|
|
31
|
+
program
|
|
32
|
+
.description('Keyman Developer Command Line Interface')
|
|
33
|
+
.configureHelp({
|
|
34
|
+
showGlobalOptions: true
|
|
35
|
+
})
|
|
36
|
+
.version(KEYMAN_VERSION.VERSION_WITH_TAG)
|
|
37
|
+
// This corresponds to an option tested in KeymanSentry.ts, which is
|
|
38
|
+
// searched for in process.argv, in order to avoid depending on Commander to
|
|
39
|
+
// start Sentry, and to ensure that we capture errors as early as possible
|
|
40
|
+
// in launch
|
|
41
|
+
.addOption(new Option('--no-error-reporting', 'Disable error reporting to keyman.com (overriding user settings)'))
|
|
42
|
+
.addOption(new Option('--error-reporting', 'Enable error reporting to keyman.com (overriding user settings)'));
|
|
43
|
+
declareBuild(program);
|
|
44
|
+
declareAnalyze(program);
|
|
45
|
+
declareMessage(program);
|
|
46
|
+
/* Future commands:
|
|
47
|
+
declareClean(program);
|
|
48
|
+
declareCopy(program);
|
|
49
|
+
declareRename(program);
|
|
50
|
+
declareGenerate(program);
|
|
51
|
+
declareImport(program);
|
|
52
|
+
declareTest(program);
|
|
53
|
+
declarePublish(program);
|
|
54
|
+
*/
|
|
55
|
+
await program.parseAsync(process.argv)
|
|
56
|
+
.catch(reason => console.error(reason));
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=kmc.js.map
|
package/build/src/kmc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"version":3,"file":"kmc.js","sourceRoot":"","sources":["../../src/kmc.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,gBAAgB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;AAC9D,IAAG,YAAY,CAAC,SAAS,EAAE,EAAE;IAC3B,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;CACrC;AACD,IAAI;IACF,MAAM,GAAG,EAAE,CAAC;CACb;AAAC,OAAM,CAAC,EAAE;IACT,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAClC;AAED,gFAAgF;AAChF,8EAA8E;AAC9E,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC;AAErB,KAAK,UAAU,GAAG;IAChB,MAAM,WAAW,EAAE,CAAC;IAEpB,eAAe;IAEf,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,WAAW,CAAC,yCAAyC,CAAC;SACtD,aAAa,CAAC;QACb,iBAAiB,EAAE,IAAI;KACxB,CAAC;SACD,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC;QAEzC,oEAAoE;QACpE,4EAA4E;QAC5E,0EAA0E;QAC1E,YAAY;SACX,SAAS,CAAC,IAAI,MAAM,CAAC,sBAAsB,EAAE,kEAAkE,CAAC,CAAC;SACjH,SAAS,CAAC,IAAI,MAAM,CAAC,mBAAmB,EAAE,iEAAiE,CAAC,CAAC,CAAC;IAEjH,YAAY,CAAC,OAAO,CAAC,CAAC;IACtB,cAAc,CAAC,OAAO,CAAC,CAAC;IACxB,cAAc,CAAC,OAAO,CAAC,CAAC;IAExB;;;;;;;;MAQE;IAEF,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;SACnC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5C,CAAC"}
|
package/build/src/kmlmc.js
CHANGED
|
@@ -1,60 +1,58 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
.
|
|
15
|
-
.
|
|
16
|
-
.
|
|
17
|
-
.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
console.error(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
//# debugId=43f89963-a77d-5aba-9360-e3bdd8749051
|
|
60
|
-
//# sourceMappingURL=kmlmc.js.map
|
|
2
|
+
/**
|
|
3
|
+
* kmlmc - Keyman Lexical Model Compiler
|
|
4
|
+
*/
|
|
5
|
+
import { Command } from 'commander';
|
|
6
|
+
import { LexicalModelCompiler } from '@keymanapp/kmc-model';
|
|
7
|
+
import KEYMAN_VERSION from "@keymanapp/keyman-version";
|
|
8
|
+
import { NodeCompilerCallbacks } from './util/NodeCompilerCallbacks.js';
|
|
9
|
+
let inputFilename;
|
|
10
|
+
const program = new Command();
|
|
11
|
+
/* Arguments */
|
|
12
|
+
program
|
|
13
|
+
.description('Compiles Keyman lexical models')
|
|
14
|
+
.version(KEYMAN_VERSION.VERSION_WITH_TAG)
|
|
15
|
+
.arguments('<infile>')
|
|
16
|
+
.action(infile => inputFilename = infile)
|
|
17
|
+
.option('-o, --outFile <filename>', 'where to save the resultant file');
|
|
18
|
+
program.parse(process.argv);
|
|
19
|
+
// Deal with input arguments:
|
|
20
|
+
if (!inputFilename) {
|
|
21
|
+
exitDueToUsageError('Must provide a lexical model source file.');
|
|
22
|
+
}
|
|
23
|
+
const callbacks = new NodeCompilerCallbacks({ logLevel: 'info' });
|
|
24
|
+
const compiler = new LexicalModelCompiler();
|
|
25
|
+
if (!await compiler.init(callbacks, null)) {
|
|
26
|
+
console.error('Initialization failed.');
|
|
27
|
+
process.exit(65 /* SysExits.EX_DATAERR */);
|
|
28
|
+
}
|
|
29
|
+
let code = null;
|
|
30
|
+
// Compile:
|
|
31
|
+
try {
|
|
32
|
+
code = await compiler.run(inputFilename, program.opts().outFile);
|
|
33
|
+
}
|
|
34
|
+
catch (e) {
|
|
35
|
+
console.error(e);
|
|
36
|
+
process.exit(65 /* SysExits.EX_DATAERR */);
|
|
37
|
+
}
|
|
38
|
+
if (!code) {
|
|
39
|
+
console.error('Compilation failed.');
|
|
40
|
+
process.exit(65 /* SysExits.EX_DATAERR */);
|
|
41
|
+
}
|
|
42
|
+
// Output:
|
|
43
|
+
if (program.opts().outFile) {
|
|
44
|
+
compiler.write(code.artifacts);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
// TODO(lowpri): if writing to console then log messages should all be to stderr?
|
|
48
|
+
const decoder = new TextDecoder();
|
|
49
|
+
const text = decoder.decode(code.artifacts.js.data);
|
|
50
|
+
console.log(text);
|
|
51
|
+
}
|
|
52
|
+
function exitDueToUsageError(message) {
|
|
53
|
+
console.error(`${program.name()}: ${message}`);
|
|
54
|
+
console.error();
|
|
55
|
+
program.outputHelp();
|
|
56
|
+
return process.exit(64 /* SysExits.EX_USAGE */);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=kmlmc.js.map
|
package/build/src/kmlmc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"version":3,"file":"kmlmc.js","sourceRoot":"","sources":["../../src/kmlmc.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,IAAI,aAAqB,CAAC;AAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,eAAe;AACf,OAAO;KACJ,WAAW,CAAC,gCAAgC,CAAC;KAC7C,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC;KACxC,SAAS,CAAC,UAAU,CAAC;KACrB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,GAAG,MAAM,CAAC;KACxC,MAAM,CAAC,0BAA0B,EAAE,kCAAkC,CAAC,CAAC;AAE1E,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,6BAA6B;AAC7B,IAAI,CAAC,aAAa,EAAE;IAClB,mBAAmB,CAAC,2CAA2C,CAAC,CAAC;CAClE;AAED,MAAM,SAAS,GAAG,IAAI,qBAAqB,CAAC,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;AAEhE,MAAM,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC5C,IAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE;IACxC,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACxC,OAAO,CAAC,IAAI,8BAAqB,CAAC;CACnC;AAED,IAAI,IAAI,GAAG,IAAI,CAAC;AAChB,WAAW;AACX,IAAI;IACF,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;CAClE;AAAC,OAAM,CAAC,EAAE;IACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,OAAO,CAAC,IAAI,8BAAqB,CAAC;CACnC;AAED,IAAG,CAAC,IAAI,EAAE;IACR,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACpC,OAAO,CAAC,IAAI,8BAAqB,CAAC;CACnC;AAED,UAAU;AACV,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE;IAC1B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;CAChC;KAAM;IACL,iFAAiF;IACjF,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;CACnB;AAED,SAAS,mBAAmB,CAAC,OAAe;IAC1C,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,OAAO,CAAC,UAAU,EAAE,CAAC;IACrB,OAAO,OAAO,CAAC,IAAI,4BAAmB,CAAC;AACzC,CAAC"}
|
package/build/src/kmlmp.js
CHANGED
|
@@ -1,49 +1,47 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
9
|
-
import
|
|
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
|
-
console.error(
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
//# debugId=6084a803-6501-5bad-bf49-891c63297b06
|
|
49
|
-
//# sourceMappingURL=kmlmp.js.map
|
|
2
|
+
/**
|
|
3
|
+
* kmlmp - Keyman Lexical Model Package Compiler
|
|
4
|
+
*/
|
|
5
|
+
// Note: this is a deprecated package and will be removed in Keyman 18.0
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
import { KmpCompiler } from '@keymanapp/kmc-package';
|
|
8
|
+
import KEYMAN_VERSION from "@keymanapp/keyman-version";
|
|
9
|
+
import { NodeCompilerCallbacks } from './util/NodeCompilerCallbacks.js';
|
|
10
|
+
let inputFilename;
|
|
11
|
+
const program = new Command();
|
|
12
|
+
/* Arguments */
|
|
13
|
+
program
|
|
14
|
+
.description('Compiles Keyman lexical model packages\nDeprecated: use <kmc build> instead; will be removed in v18')
|
|
15
|
+
.version(KEYMAN_VERSION.VERSION_WITH_TAG)
|
|
16
|
+
.arguments('<infile>')
|
|
17
|
+
.action(infile => inputFilename = infile)
|
|
18
|
+
.option('-o, --outFile <filename>', 'where to save the resultant file');
|
|
19
|
+
program.parse(process.argv);
|
|
20
|
+
// Deal with input arguments:
|
|
21
|
+
if (!inputFilename) {
|
|
22
|
+
exitDueToUsageError('Must provide a lexical model package source file.');
|
|
23
|
+
}
|
|
24
|
+
let outputFilename = program.opts().outFile ? program.opts().outFile : inputFilename.replace(/\.kps$/, ".kmp");
|
|
25
|
+
//
|
|
26
|
+
// Run the compiler
|
|
27
|
+
//
|
|
28
|
+
const callbacks = new NodeCompilerCallbacks({ logLevel: 'info' });
|
|
29
|
+
let kmpCompiler = new KmpCompiler();
|
|
30
|
+
if (!await kmpCompiler.init(callbacks, null)) {
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
let result = await kmpCompiler.run(inputFilename, outputFilename);
|
|
34
|
+
if (!result) {
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
if (!await kmpCompiler.write(result.artifacts)) {
|
|
38
|
+
console.error('Failed to write kmp file');
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
function exitDueToUsageError(message) {
|
|
42
|
+
console.error(`${program.name()}: ${message}`);
|
|
43
|
+
console.error();
|
|
44
|
+
program.outputHelp();
|
|
45
|
+
return process.exit(64 /* SysExits.EX_USAGE */);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=kmlmp.js.map
|
package/build/src/kmlmp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"version":3,"file":"kmlmp.js","sourceRoot":"","sources":["../../src/kmlmp.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,wEAAwE;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,IAAI,aAAqB,CAAC;AAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,eAAe;AACf,OAAO;KACJ,WAAW,CAAC,qGAAqG,CAAC;KAClH,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC;KACxC,SAAS,CAAC,UAAU,CAAC;KACrB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,GAAG,MAAM,CAAC;KACxC,MAAM,CAAC,0BAA0B,EAAE,kCAAkC,CAAC,CAAC;AAE1E,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,6BAA6B;AAE7B,IAAI,CAAC,aAAa,EAAE;IAClB,mBAAmB,CAAC,mDAAmD,CAAC,CAAC;CAC1E;AAED,IAAI,cAAc,GAAW,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAEvH,EAAE;AACF,mBAAmB;AACnB,EAAE;AAEF,MAAM,SAAS,GAAG,IAAI,qBAAqB,CAAC,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;AAChE,IAAI,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AACpC,IAAG,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE;IAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACjB;AAED,IAAI,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AAClE,IAAG,CAAC,MAAM,EAAE;IACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACjB;AAED,IAAG,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;IAC7C,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACjB;AAED,SAAS,mBAAmB,CAAC,OAAe;IAC1C,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,OAAO,CAAC,UAAU,EAAE,CAAC;IACrB,OAAO,OAAO,CAAC,IAAI,4BAAmB,CAAC;AACzC,CAAC"}
|
|
@@ -1,77 +1,75 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
static
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
static
|
|
14
|
-
static
|
|
15
|
-
static
|
|
16
|
-
static
|
|
17
|
-
static
|
|
18
|
-
static
|
|
19
|
-
static
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
static
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
static
|
|
26
|
-
static
|
|
27
|
-
static
|
|
28
|
-
static
|
|
29
|
-
static
|
|
30
|
-
static
|
|
31
|
-
static
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
static
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
static
|
|
38
|
-
static
|
|
39
|
-
static
|
|
40
|
-
static
|
|
41
|
-
static
|
|
42
|
-
static
|
|
43
|
-
static
|
|
44
|
-
static
|
|
45
|
-
static
|
|
46
|
-
static
|
|
47
|
-
static
|
|
48
|
-
static
|
|
49
|
-
static
|
|
50
|
-
static
|
|
51
|
-
static
|
|
52
|
-
static
|
|
53
|
-
static
|
|
54
|
-
static
|
|
55
|
-
static
|
|
56
|
-
static
|
|
57
|
-
static
|
|
58
|
-
static
|
|
59
|
-
static
|
|
60
|
-
static
|
|
61
|
-
static
|
|
62
|
-
static
|
|
63
|
-
static
|
|
64
|
-
static
|
|
65
|
-
static
|
|
66
|
-
static
|
|
67
|
-
static
|
|
68
|
-
static
|
|
69
|
-
static
|
|
70
|
-
static
|
|
71
|
-
static
|
|
72
|
-
static
|
|
73
|
-
static
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
//# debugId=20670923-6d88-5a0c-97aa-d77f25852eee
|
|
77
|
-
//# sourceMappingURL=infrastructureMessages.js.map
|
|
1
|
+
import { CompilerError, CompilerErrorNamespace, CompilerErrorSeverity, CompilerMessageSpec as m, CompilerMessageDef as def, CompilerMessageSpecWithException } from "@keymanapp/common-types";
|
|
2
|
+
const Namespace = CompilerErrorNamespace.Infrastructure;
|
|
3
|
+
const SevInfo = CompilerErrorSeverity.Info | Namespace;
|
|
4
|
+
const SevHint = CompilerErrorSeverity.Hint | Namespace;
|
|
5
|
+
// const SevWarn = CompilerErrorSeverity.Warn | Namespace;
|
|
6
|
+
const SevError = CompilerErrorSeverity.Error | Namespace;
|
|
7
|
+
const SevFatal = CompilerErrorSeverity.Fatal | Namespace;
|
|
8
|
+
export class InfrastructureMessages {
|
|
9
|
+
static FATAL_UnexpectedException = SevFatal | 0x0001;
|
|
10
|
+
static Fatal_UnexpectedException = (o) => CompilerMessageSpecWithException(this.FATAL_UnexpectedException, null, o.e ?? 'unknown error');
|
|
11
|
+
// For this message, we override the filename with the passed-in file. A bit of a hack but does the job
|
|
12
|
+
static INFO_BuildingFile = SevInfo | 0x0002;
|
|
13
|
+
static Info_BuildingFile = (o) => ({ filename: o.filename, ...m(this.INFO_BuildingFile, `Building ${def(o.relativeFilename)}`) });
|
|
14
|
+
static ERROR_FileDoesNotExist = SevError | 0x0003;
|
|
15
|
+
static Error_FileDoesNotExist = (o) => m(this.ERROR_FileDoesNotExist, `File ${def(o.filename)} does not exist`);
|
|
16
|
+
static ERROR_FileTypeNotRecognized = SevError | 0x0004;
|
|
17
|
+
static Error_FileTypeNotRecognized = (o) => m(this.ERROR_FileTypeNotRecognized, `Unrecognised input file ${def(o.filename)}, expecting ${def(o.extensions)}, or project folder`);
|
|
18
|
+
static ERROR_OutFileNotValidForProjects = SevError | 0x0005;
|
|
19
|
+
static Error_OutFileNotValidForProjects = () => m(this.ERROR_OutFileNotValidForProjects, `--out-file should not be specified for project builds`);
|
|
20
|
+
// For this message, we override the filename with the passed-in file. A bit of a hack but does the job
|
|
21
|
+
static INFO_FileBuiltSuccessfully = SevInfo | 0x0006;
|
|
22
|
+
static Info_FileBuiltSuccessfully = (o) => ({ filename: o.filename, ...m(this.INFO_FileBuiltSuccessfully, `${def(o.relativeFilename)} built successfully.`) });
|
|
23
|
+
// For this message, we override the filename with the passed-in file. A bit of a hack but does the job
|
|
24
|
+
static INFO_FileNotBuiltSuccessfully = SevInfo | 0x0007;
|
|
25
|
+
static Info_FileNotBuiltSuccessfully = (o) => ({ filename: o.filename, ...m(this.INFO_FileNotBuiltSuccessfully, `${def(o.relativeFilename)} failed to build.`) });
|
|
26
|
+
static ERROR_InvalidProjectFile = SevError | 0x0008;
|
|
27
|
+
static Error_InvalidProjectFile = (o) => m(this.ERROR_InvalidProjectFile, `Project file is not valid: ${def(o.message)}`);
|
|
28
|
+
static HINT_FilenameHasDifferingCase = SevHint | 0x0009;
|
|
29
|
+
static Hint_FilenameHasDifferingCase = (o) => m(this.HINT_FilenameHasDifferingCase, `File on disk '${def(o.filename)}' does not match case of '${def(o.reference)}' in source file; this is an error on platforms with case-sensitive filesystems.`);
|
|
30
|
+
static ERROR_UnknownFileFormat = SevError | 0x000A;
|
|
31
|
+
static Error_UnknownFileFormat = (o) => m(this.ERROR_UnknownFileFormat, `Unknown file format ${def(o.format)}; only Markdown (.md), JSON (.json), and Text (.txt) are supported.`);
|
|
32
|
+
// For this message, we override the filename with the passed-in file. A bit of a hack but does the job
|
|
33
|
+
static INFO_ProjectBuiltSuccessfully = SevInfo | 0x000B;
|
|
34
|
+
static Info_ProjectBuiltSuccessfully = (o) => ({ filename: o.filename, ...m(this.INFO_ProjectBuiltSuccessfully, `Project ${def(o.relativeFilename)} built successfully.`) });
|
|
35
|
+
// For this message, we override the filename with the passed-in file. A bit of a hack but does the job
|
|
36
|
+
static INFO_ProjectNotBuiltSuccessfully = SevInfo | 0x000C;
|
|
37
|
+
static Info_ProjectNotBuiltSuccessfully = (o) => ({ filename: o.filename, ...m(this.INFO_ProjectNotBuiltSuccessfully, `Project ${def(o.relativeFilename)} failed to build.`) });
|
|
38
|
+
static INFO_TooManyMessages = SevInfo | 0x000D;
|
|
39
|
+
static Info_TooManyMessages = (o) => m(this.INFO_TooManyMessages, `More than ${def(o.count)} warnings or errors received; suppressing further messages.`);
|
|
40
|
+
static ERROR_FileTypeNotFound = SevError | 0x000E;
|
|
41
|
+
static Error_FileTypeNotFound = (o) => m(this.ERROR_FileTypeNotFound, `A file of type ${def(o.ext)} was not found in the project.`);
|
|
42
|
+
static ERROR_NotAProjectFile = SevError | 0x000F;
|
|
43
|
+
static Error_NotAProjectFile = (o) => m(this.ERROR_NotAProjectFile, `File ${def(o.filename)} must have a .kpj extension to be treated as a project.`);
|
|
44
|
+
static INFO_WarningsHaveFailedBuild = SevInfo | 0x0010;
|
|
45
|
+
static Info_WarningsHaveFailedBuild = () => m(this.INFO_WarningsHaveFailedBuild, `The build failed because option "treat warnings as errors" is enabled and there are one or more warnings.`);
|
|
46
|
+
static ERROR_CannotCreateFolder = SevError | 0x0011;
|
|
47
|
+
static Error_CannotCreateFolder = (o) => CompilerMessageSpecWithException(this.ERROR_CannotCreateFolder, null, `Unable to create folder ${def(o.folderName)}: ${o.e ?? 'unknown error'}`);
|
|
48
|
+
static ERROR_InvalidProjectFolder = SevError | 0x0012;
|
|
49
|
+
static Error_InvalidProjectFolder = (o) => m(this.ERROR_InvalidProjectFolder, `The folder ${def(o.folderName)} does not appear to be a Keyman Developer project.`);
|
|
50
|
+
static ERROR_UnsupportedProjectVersion = SevError | 0x0013;
|
|
51
|
+
static Error_UnsupportedProjectVersion = (o) => m(this.ERROR_UnsupportedProjectVersion, `Project version ${def(o.version)} is not supported by this version of Keyman Developer.`);
|
|
52
|
+
static HINT_ProjectIsVersion10 = SevHint | 0x0014;
|
|
53
|
+
static Hint_ProjectIsVersion10 = () => m(this.HINT_ProjectIsVersion10, `The project file is an older version and can be upgraded to version 17.0`);
|
|
54
|
+
static ERROR_OutFileCanOnlyBeSpecifiedWithSingleInfile = SevError | 0x0015;
|
|
55
|
+
static Error_OutFileCanOnlyBeSpecifiedWithSingleInfile = () => m(this.ERROR_OutFileCanOnlyBeSpecifiedWithSingleInfile, `Parameter --out-file can only be used with a single input file.`);
|
|
56
|
+
static ERROR_InvalidMessageFormat = SevError | 0x0016;
|
|
57
|
+
static Error_InvalidMessageFormat = (o) => m(this.ERROR_InvalidMessageFormat, `Invalid parameter: --message ${def(o.message)} must match format '[KM]#####[:Disable|Info|Hint|Warn|Error]'`);
|
|
58
|
+
static ERROR_MessageNamespaceNotFound = SevError | 0x0017;
|
|
59
|
+
static Error_MessageNamespaceNotFound = (o) => m(this.ERROR_MessageNamespaceNotFound, `Invalid parameter: --message ${def(o.code ? CompilerError.formatCode(o.code) : undefined)} does not have a recognized namespace`);
|
|
60
|
+
static ERROR_MessageCodeNotFound = SevError | 0x0018;
|
|
61
|
+
static Error_MessageCodeNotFound = (o) => m(this.ERROR_MessageCodeNotFound, `Invalid parameter: --message ${o.code ? CompilerError.formatCode(o.code) : undefined} is not a recognized code`);
|
|
62
|
+
static ERROR_MessageCannotBeCoerced = SevError | 0x0019;
|
|
63
|
+
static Error_MessageCannotBeCoerced = (o) => m(this.ERROR_MessageCannotBeCoerced, `Invalid parameter: --message ${def(o.code ? CompilerError.formatCode(o.code) : undefined)} is not of type 'info', 'hint' or 'warn', and cannot be coerced`);
|
|
64
|
+
static ERROR_UnrecognizedMessageCode = SevError | 0x001a;
|
|
65
|
+
static Error_UnrecognizedMessageCode = (o) => m(this.ERROR_UnrecognizedMessageCode, `Invalid parameter: message identifier '${def(o.message)}' must match format '[KM]#####'`);
|
|
66
|
+
static ERROR_MustSpecifyMessageCode = SevError | 0x001b;
|
|
67
|
+
static Error_MustSpecifyMessageCode = () => m(this.ERROR_MustSpecifyMessageCode, `Must specify at least one message code or -a for all messages`);
|
|
68
|
+
static ERROR_MessagesCannotBeFilteredForMarkdownFormat = SevError | 0x001c;
|
|
69
|
+
static Error_MessagesCannotBeFilteredForMarkdownFormat = () => m(this.ERROR_MessagesCannotBeFilteredForMarkdownFormat, `Messages cannot be filtered for markdown format`);
|
|
70
|
+
static ERROR_OutputPathMustBeSpecifiedForMarkdownFormat = SevError | 0x001d;
|
|
71
|
+
static Error_OutputPathMustBeSpecifiedForMarkdownFormat = () => m(this.ERROR_OutputPathMustBeSpecifiedForMarkdownFormat, `Output path must be specified with -o for markdown output format`);
|
|
72
|
+
static ERROR_OutputPathMustExistAndBeADirectory = SevError | 0x001e;
|
|
73
|
+
static Error_OutputPathMustExistAndBeADirectory = (o) => m(this.ERROR_OutputPathMustExistAndBeADirectory, `Output path ${def(o.outPath)} must exist and must be a folder`);
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=infrastructureMessages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"version":3,"file":"infrastructureMessages.js","sourceRoot":"","sources":["../../../src/messages/infrastructureMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,mBAAmB,IAAI,CAAC,EAAE,kBAAkB,IAAI,GAAG,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAE9L,MAAM,SAAS,GAAG,sBAAsB,CAAC,cAAc,CAAC;AACxD,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,GAAG,SAAS,CAAC;AACvD,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,GAAG,SAAS,CAAC;AACvD,0DAA0D;AAC1D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,GAAG,SAAS,CAAC;AACzD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,GAAG,SAAS,CAAC;AAEzD,MAAM,OAAO,sBAAsB;IACjC,MAAM,CAAC,yBAAyB,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrD,MAAM,CAAC,yBAAyB,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,gCAAgC,CAAC,IAAI,CAAC,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC;IAElJ,uGAAuG;IACvG,MAAM,CAAC,iBAAiB,GAAG,OAAO,GAAG,MAAM,CAAC;IAC5C,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAA2C,EAAE,EAAE,CAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAC5H,YAAY,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;IAE3C,MAAM,CAAC,sBAAsB,GAAG,QAAQ,GAAG,MAAM,CAAC;IAClD,MAAM,CAAC,sBAAsB,GAAG,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,EACpF,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAE5C,MAAM,CAAC,2BAA2B,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvD,MAAM,CAAC,2BAA2B,GAAG,CAAC,CAAwC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,EACnH,2BAA2B,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAEnG,MAAM,CAAC,gCAAgC,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC5D,MAAM,CAAC,gCAAgC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,EACrF,uDAAuD,CAAC,CAAC;IAE3D,uGAAuG;IACvG,MAAM,CAAC,0BAA0B,GAAG,OAAO,GAAG,MAAM,CAAC;IACrD,MAAM,CAAC,0BAA0B,GAAG,CAAC,CAA2C,EAAE,EAAE,CAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,0BAA0B,EAC9I,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,EAAC,CAAC,CAAC;IAEtD,uGAAuG;IACvG,MAAM,CAAC,6BAA6B,GAAG,OAAO,GAAG,MAAM,CAAC;IACxD,MAAM,CAAC,6BAA6B,GAAG,CAAC,CAA2C,EAAE,EAAE,CAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,6BAA6B,EACpJ,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,EAAC,CAAC,CAAC;IAEnD,MAAM,CAAC,wBAAwB,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,MAAM,CAAC,wBAAwB,GAAG,CAAC,CAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,EACvF,8BAA8B,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAElD,MAAM,CAAC,6BAA6B,GAAG,OAAO,GAAG,MAAM,CAAC;IACxD,MAAM,CAAC,6BAA6B,GAAG,CAAC,CAAqC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,EACpH,iBAAiB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,kFAAkF,CAAC,CAAC;IAEnK,MAAM,CAAC,uBAAuB,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnD,MAAM,CAAC,uBAAuB,GAAG,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,EACpF,uBAAuB,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,qEAAqE,CAAC,CAAC;IAE7G,uGAAuG;IACvG,MAAM,CAAC,6BAA6B,GAAG,OAAO,GAAG,MAAM,CAAC;IACxD,MAAM,CAAC,6BAA6B,GAAG,CAAC,CAA2C,EAAE,EAAE,CAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,6BAA6B,EACpJ,WAAW,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,EAAC,CAAC,CAAC;IAE9D,uGAAuG;IACvG,MAAM,CAAC,gCAAgC,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3D,MAAM,CAAC,gCAAgC,GAAG,CAAC,CAA2C,EAAE,EAAE,CAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,gCAAgC,EAC1J,WAAW,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,EAAC,CAAC,CAAC;IAE3D,MAAM,CAAC,oBAAoB,GAAG,OAAO,GAAG,MAAM,CAAC;IAC/C,MAAM,CAAC,oBAAoB,GAAG,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAC7E,aAAa,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAE1F,MAAM,CAAC,sBAAsB,GAAG,QAAQ,GAAG,MAAM,CAAC;IAClD,MAAM,CAAC,sBAAsB,GAAG,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAC/E,kBAAkB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAEhE,MAAM,CAAC,qBAAqB,GAAG,QAAQ,GAAG,MAAM,CAAC;IACjD,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAClF,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,yDAAyD,CAAC,CAAC;IAEpF,MAAM,CAAC,4BAA4B,GAAG,OAAO,GAAG,MAAM,CAAC;IACvD,MAAM,CAAC,4BAA4B,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAC7E,2GAA2G,CAAC,CAAC;IAE/G,MAAM,CAAC,wBAAwB,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,MAAM,CAAC,wBAAwB,GAAG,CAAC,CAA6B,EAAE,EAAE,CAAC,gCAAgC,CAAC,IAAI,CAAC,wBAAwB,EAAE,IAAI,EACvI,2BAA2B,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IAE7E,MAAM,CAAC,0BAA0B,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtD,MAAM,CAAC,0BAA0B,GAAG,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,EAC9F,cAAc,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,oDAAoD,CAAC,CAAC;IAEvF,MAAM,CAAC,+BAA+B,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3D,MAAM,CAAC,+BAA+B,GAAG,CAAC,CAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,+BAA+B,EACrG,mBAAmB,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC;IAE7F,MAAM,CAAC,uBAAuB,GAAG,OAAO,GAAG,MAAM,CAAC;IAClD,MAAM,CAAC,uBAAuB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,EACnE,0EAA0E,CAAC,CAAC;IAE9E,MAAM,CAAC,+CAA+C,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3E,MAAM,CAAC,+CAA+C,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,+CAA+C,EACnH,iEAAiE,CAAC,CAAC;IAErE,MAAM,CAAC,0BAA0B,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtD,MAAM,CAAC,0BAA0B,GAAG,CAAC,CAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,EAC3F,gCAAgC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,+DAA+D,CAAC,CAAC;IAEjH,MAAM,CAAC,8BAA8B,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC1D,MAAM,CAAC,8BAA8B,GAAG,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,EACjG,gCAAgC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA,CAAC,CAAA,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,SAAS,CAAC,uCAAuC,CAAC,CAAC;IAEjI,MAAM,CAAC,yBAAyB,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrD,MAAM,CAAC,yBAAyB,GAAG,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,EACvF,gCAAgC,CAAC,CAAC,IAAI,CAAA,CAAC,CAAA,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,SAAS,2BAA2B,CAAC,CAAC;IAEhH,MAAM,CAAC,4BAA4B,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxD,MAAM,CAAC,4BAA4B,GAAG,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAC7F,gCAAgC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA,CAAC,CAAA,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,SAAS,CAAC,iEAAiE,CAAC,CAAC;IAE3J,MAAM,CAAC,6BAA6B,GAAG,QAAQ,GAAG,MAAM,CAAC;IACzD,MAAM,CAAC,6BAA6B,GAAG,CAAC,CAAkB,EAAE,EAAE,CAAC,CAAC,CAC9D,IAAI,CAAC,6BAA6B,EAClC,0CAA0C,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAE7F,MAAM,CAAC,4BAA4B,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxD,MAAM,CAAC,4BAA4B,GAAG,GAAG,EAAE,CAAC,CAAC,CAC3C,IAAI,CAAC,4BAA4B,EACjC,+DAA+D,CAAC,CAAC;IAEnE,MAAM,CAAC,+CAA+C,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3E,MAAM,CAAC,+CAA+C,GAAG,GAAG,EAAE,CAAC,CAAC,CAC9D,IAAI,CAAC,+CAA+C,EACpD,iDAAiD,CAAC,CAAC;IAErD,MAAM,CAAC,gDAAgD,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC5E,MAAM,CAAC,gDAAgD,GAAG,GAAG,EAAE,CAAC,CAAC,CAC/D,IAAI,CAAC,gDAAgD,EACrD,kEAAkE,CAAC,CAAC;IAEtE,MAAM,CAAC,wCAAwC,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpE,MAAM,CAAC,wCAAwC,GAAG,CAAC,CAAkB,EAAE,EAAE,CAAC,CAAC,CACzE,IAAI,CAAC,wCAAwC,EAC7C,eAAe,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC"}
|