@keymanapp/kmc-kmn 17.0.85-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Makefile ADDED
@@ -0,0 +1,37 @@
1
+ #
2
+ # Keyman Developer - kmc kmn Compiler Makefile
3
+ #
4
+
5
+ !include ..\Defines.mak
6
+
7
+ build: .virtual
8
+ $(GIT_BASH_FOR_KEYMAN) build.sh build
9
+
10
+ configure: .virtual
11
+ $(GIT_BASH_FOR_KEYMAN) build.sh configure
12
+
13
+ clean: .virtual
14
+ $(GIT_BASH_FOR_KEYMAN) build.sh clean
15
+
16
+ test: .virtual
17
+ $(GIT_BASH_FOR_KEYMAN) build.sh test
18
+
19
+ # build.sh bundle must be run from shell as it requires a temp folder to be
20
+ # passed in. See inst/download.in.mak for instantiation.
21
+
22
+ publish: .virtual
23
+ $(GIT_BASH_FOR_KEYMAN) build.sh publish
24
+
25
+ signcode:
26
+ @rem nothing to do
27
+
28
+ wrap-symbols:
29
+ @rem nothing to do
30
+
31
+ test-manifest:
32
+ @rem nothing to do
33
+
34
+ install:
35
+ @rem nothing to do
36
+
37
+ !include ..\Target.mak
@@ -0,0 +1,15 @@
1
+ export interface CompilerOptions {
2
+ shouldAddCompilerVersion?: boolean;
3
+ saveDebug?: boolean;
4
+ compilerWarningsAsErrors?: boolean;
5
+ warnDeprecatedCode?: boolean;
6
+ }
7
+ export declare class Compiler {
8
+ wasmModule: any;
9
+ compileKeyboardFile: any;
10
+ setCompilerOptions: any;
11
+ init(): Promise<boolean>;
12
+ run(infile: string, outfile: string, options?: CompilerOptions): boolean;
13
+ private runCompiler;
14
+ }
15
+ //# sourceMappingURL=compiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,eAAe;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACpC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B;AASD,qBAAa,QAAQ;IACnB,UAAU,EAAE,GAAG,CAAC;IAChB,mBAAmB,EAAE,GAAG,CAAC;IACzB,kBAAkB,EAAE,GAAG,CAAC;IAEX,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAU9B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO;IAoB/E,OAAO,CAAC,WAAW;CAiBpB"}
@@ -0,0 +1,73 @@
1
+ /*
2
+ TODO: implement additional interfaces:
3
+
4
+ extern "C" bool kmcmp_CompileKeyboardFileToBuffer(
5
+ char* pszInfile,
6
+ void* pfkBuffer,
7
+ bool ACompilerWarningsAsErrors,
8
+ bool AWarnDeprecatedCode,
9
+ kmcmp_CompilerMessageProc pMsgproc,
10
+ void* AmsgprocContext,
11
+ int Target
12
+ );
13
+
14
+ typedef bool (*kmcmp_ValidateJsonMessageProc)(int64_t offset, const char* szText, void* context);
15
+
16
+ extern "C" bool kmcmp_ValidateJsonFile(
17
+ std::fstream& f,
18
+ std::fstream& fd,
19
+ kmcmp_ValidateJsonMessageProc MessageProc,
20
+ void* context
21
+ );
22
+ */
23
+ // TODO: rename wasm-host?
24
+ import loadWasmHost from '../import/kmcmplib/wasm-host.js';
25
+ ;
26
+ const baseOptions = {
27
+ shouldAddCompilerVersion: true,
28
+ saveDebug: true,
29
+ compilerWarningsAsErrors: false,
30
+ warnDeprecatedCode: true
31
+ };
32
+ export class Compiler {
33
+ wasmModule;
34
+ compileKeyboardFile;
35
+ setCompilerOptions;
36
+ async init() {
37
+ if (!this.wasmModule) {
38
+ this.wasmModule = await loadWasmHost();
39
+ this.compileKeyboardFile = this.wasmModule.cwrap('kmcmp_Wasm_CompileKeyboardFile', 'number', ['string', 'string',
40
+ 'number', 'number', 'number', 'string']);
41
+ this.setCompilerOptions = this.wasmModule.cwrap('kmcmp_Wasm_SetCompilerOptions', 'number', ['number']);
42
+ }
43
+ return this.compileKeyboardFile !== undefined && this.setCompilerOptions !== undefined;
44
+ }
45
+ run(infile, outfile, options) {
46
+ if (!this.wasmModule) {
47
+ return false;
48
+ }
49
+ options = { ...baseOptions, ...options };
50
+ globalThis.msgproc = function (line, code, msg) {
51
+ // TODO: link into the kmc error reporting infrastructure
52
+ console.log(`[${line}] ${code}: ${msg}`);
53
+ };
54
+ // TODO: use callbacks for file access -- so kmc-kmn is entirely fs agnostic
55
+ let result = this.runCompiler(infile, outfile, options) == 1;
56
+ globalThis.msgproc = null;
57
+ return result;
58
+ }
59
+ runCompiler(infile, outfile, options) {
60
+ try {
61
+ if (!this.setCompilerOptions(options.shouldAddCompilerVersion)) {
62
+ console.error('Unable to set compiler options');
63
+ }
64
+ return this.compileKeyboardFile(infile, outfile, options.saveDebug ? 1 : 0, options.compilerWarningsAsErrors ? 1 : 0, options.warnDeprecatedCode ? 1 : 0, 'msgproc');
65
+ }
66
+ catch (e) {
67
+ // TODO: use sentry
68
+ console.error(e);
69
+ }
70
+ return 0;
71
+ }
72
+ }
73
+ //# sourceMappingURL=compiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;EAqBE;AAEF,0BAA0B;AAC1B,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAO1D,CAAC;AAEF,MAAM,WAAW,GAAoB;IACnC,wBAAwB,EAAE,IAAI;IAC9B,SAAS,EAAE,IAAI;IACf,wBAAwB,EAAE,KAAK;IAC/B,kBAAkB,EAAE,IAAI;CACzB,CAAC;AAEF,MAAM,OAAO,QAAQ;IACnB,UAAU,CAAM;IAChB,mBAAmB,CAAM;IACzB,kBAAkB,CAAM;IAEjB,KAAK,CAAC,IAAI;QACf,IAAG,CAAC,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,GAAG,MAAM,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,gCAAgC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ;gBAC9G,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,+BAA+B,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;SACxG;QACD,OAAO,IAAI,CAAC,mBAAmB,KAAK,SAAS,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,CAAC;IACzF,CAAC;IAEM,GAAG,CAAC,MAAc,EAAE,OAAe,EAAE,OAAyB;QACnE,IAAG,CAAC,IAAI,CAAC,UAAU,EAAE;YACnB,OAAO,KAAK,CAAC;SACd;QAED,OAAO,GAAG,EAAC,GAAG,WAAW,EAAE,GAAG,OAAO,EAAC,CAAC;QAEtC,UAAkB,CAAC,OAAO,GAAG,UAAS,IAAY,EAAE,IAAY,EAAE,GAAW;YAC5E,yDAAyD;YACzD,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAA;QAED,4EAA4E;QAC5E,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAE5D,UAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;QAEnC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,WAAW,CAAC,MAAc,EAAE,OAAe,EAAE,OAAwB;QAC3E,IAAI;YACF,IAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE;gBAC7D,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;aACjD;YACD,OAAO,IAAI,CAAC,mBAAmB,CAC7B,MAAM,EACN,OAAO,EACP,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACzB,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;SAClD;QAAC,OAAM,CAAC,EAAE;YACT,mBAAmB;YACnB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClB;QACD,OAAO,CAAC,CAAC;IACX,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ export default Module;
2
+ declare function Module(Module?: {}): Promise<any>;
3
+ //# sourceMappingURL=wasm-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm-host.d.ts","sourceRoot":"","sources":["../../../../src/import/kmcmplib/wasm-host.js"],"names":[],"mappings":";AAKA,mDAMC"}