@keymanapp/kmc 17.0.154-alpha → 17.0.156-alpha

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