@keymanapp/kmc-kmn 17.0.113-alpha → 17.0.115-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.
@@ -14,29 +14,10 @@ export interface CompilerOptions {
14
14
  compilerWarningsAsErrors?: boolean;
15
15
  warnDeprecatedCode?: boolean;
16
16
  }
17
- /**
18
- * Pointer in wasm-space
19
- */
20
- type WasmPtr = number;
21
- /**
22
- * The wrapped functions
23
- */
24
- declare class WasmWrapper {
25
- Module: any;
26
- compileKeyboardFile?: (pszInfile: string, pszOutfile: string, aSaveDebug: number, aCompilerWarningsAsErrors: number, aWarnDeprecatedCode: number, msgProc: string) => boolean;
27
- parseUnicodeSet?: (pat: string, buf: WasmPtr, length: number) => number;
28
- setCompilerOptions?: (shouldAddCompilerVersion: number) => boolean;
29
- constructor(wasmModule: any);
30
- /**
31
- * Entry point into Wasm functions
32
- * @returns WasmWrapper
33
- */
34
- static load(): Promise<WasmWrapper>;
35
- }
36
17
  export declare class KmnCompiler {
37
- callbackName: string;
18
+ private Module;
19
+ callbackID: string;
38
20
  callbacks: CompilerCallbacks;
39
- wasm: WasmWrapper;
40
21
  constructor();
41
22
  init(callbacks: CompilerCallbacks): Promise<boolean>;
42
23
  /**
@@ -46,6 +27,7 @@ export declare class KmnCompiler {
46
27
  verifyInitialized(): boolean;
47
28
  run(infile: string, outfile: string, options?: CompilerOptions): boolean;
48
29
  private compilerMessageCallback;
30
+ private loadFileCallback;
49
31
  private runCompiler;
50
32
  private runKvkCompiler;
51
33
  /**
@@ -69,5 +51,4 @@ export declare class UnicodeSet {
69
51
  get length(): number;
70
52
  toString(): string;
71
53
  }
72
- export {};
73
54
  //# sourceMappingURL=compiler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAgD,MAAM,yBAAyB,CAAC;AAI1G,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,kBAAkB,CAAC;IACzB,GAAG,CAAC,EAAE,kBAAkB,CAAC;IACzB,EAAE,CAAC,EAAE,kBAAkB,CAAC;CACzB;AAED,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;AAgBD;;GAEG;AACH,KAAK,OAAO,GAAG,MAAM,CAAC;AAEtB;;GAEG;AACH,cAAM,WAAW;IACf,MAAM,EAAE,GAAG,CAAC;IAEZ,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9K,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACxE,kBAAkB,CAAC,EAAE,CAAC,wBAAwB,EAAE,MAAM,KAAK,OAAO,CAAC;gBAEvD,UAAU,EAAE,GAAG;IAgB3B;;;OAGG;WACiB,IAAI,IAAK,OAAO,CAAC,WAAW,CAAC;CAGlD;AAED,qBAAa,WAAW;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,IAAI,EAAE,WAAW,CAAC;;IAOL,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAajE;;;OAGG;IACI,iBAAiB,IAAK,OAAO;IAY7B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO;IAyB/E,OAAO,CAAC,uBAAuB,CAG9B;IAED,OAAO,CAAC,WAAW;IAuCnB,OAAO,CAAC,cAAc;IA0BtB;;;;;OAKG;IACI,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAI,UAAU,GAAG,IAAI;CA+BhF;AA2BD;;GAEG;AACH,qBAAa,UAAU;IACF,OAAO,EAAE,MAAM;IAAS,MAAM,EAAE,MAAM,EAAE,EAAE;gBAA1C,OAAO,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM,EAAE,EAAE;IAE7D;;OAEG;IACH,IAAI,MAAM,IAAK,MAAM,CAEpB;IAED,QAAQ,IAAK,MAAM;CAGpB"}
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAgD,MAAM,yBAAyB,CAAC;AAI1G,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,kBAAkB,CAAC;IACzB,GAAG,CAAC,EAAE,kBAAkB,CAAC;IACzB,EAAE,CAAC,EAAE,kBAAkB,CAAC;CACzB;AAED,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;AAmBD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAM;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,iBAAiB,CAAC;;IAOhB,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAcjE;;;OAGG;IACI,iBAAiB,IAAK,OAAO;IAc7B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO;IA2B/E,OAAO,CAAC,uBAAuB,CAG9B;IAED,OAAO,CAAC,gBAAgB,CAsBvB;IAED,OAAO,CAAC,WAAW;IA2CnB,OAAO,CAAC,cAAc;IA4BtB;;;;;OAKG;IACI,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAI,UAAU,GAAG,IAAI;CAgChF;AA4BD;;GAEG;AACH,qBAAa,UAAU;IACF,OAAO,EAAE,MAAM;IAAS,MAAM,EAAE,MAAM,EAAE,EAAE;gBAA1C,OAAO,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM,EAAE,EAAE;IAE7D;;OAEG;IACH,IAAI,MAAM,IAAK,MAAM,CAEpB;IAED,QAAQ,IAAK,MAAM;CAGpB"}
@@ -23,52 +23,23 @@ const baseOptions = {
23
23
  * instance of the Compiler class
24
24
  */
25
25
  let callbackProcIdentifier = 0;
26
- /**
27
- * The wrapped functions
28
- */
29
- class WasmWrapper {
30
- Module;
31
- compileKeyboardFile;
32
- parseUnicodeSet;
33
- setCompilerOptions;
34
- constructor(wasmModule) {
35
- this.Module = wasmModule;
36
- if (!wasmModule) {
37
- throw Error(`wasm host did not load`);
38
- }
39
- this.compileKeyboardFile = this.Module.cwrap('kmcmp_Wasm_CompileKeyboardFile', 'boolean', ['string', 'string', 'number', 'number', 'number', 'string']);
40
- this.parseUnicodeSet = this.Module.cwrap('kmcmp_Wasm_ParseUnicodeSet', 'number', ['string', 'number', 'number']);
41
- this.setCompilerOptions = this.Module.cwrap('kmcmp_Wasm_SetCompilerOptions', 'boolean', ['number']);
42
- if (this.parseUnicodeSet === undefined
43
- || this.setCompilerOptions === undefined
44
- || this.compileKeyboardFile === undefined) {
45
- throw Error(`some wasm functions did not load properly.`);
46
- }
47
- }
48
- /**
49
- * Entry point into Wasm functions
50
- * @returns WasmWrapper
51
- */
52
- static async load() {
53
- return new WasmWrapper(await loadWasmHost());
54
- }
55
- }
56
- ;
26
+ const callbackPrefix = 'kmnCompilerCallbacks_';
57
27
  export class KmnCompiler {
58
- callbackName;
28
+ Module;
29
+ callbackID; // a unique numeric id added to globals with prefixed names
59
30
  callbacks;
60
- wasm;
61
31
  constructor() {
62
- this.callbackName = 'kmnCompilerCallback' + callbackProcIdentifier;
32
+ this.callbackID = callbackPrefix + callbackProcIdentifier.toString();
63
33
  callbackProcIdentifier++;
64
34
  }
65
35
  async init(callbacks) {
66
36
  this.callbacks = callbacks;
67
- if (!this.wasm) {
37
+ if (!this.Module) {
68
38
  try {
69
- this.wasm = await WasmWrapper.load();
39
+ this.Module = await loadWasmHost();
70
40
  }
71
41
  catch (e) {
42
+ /* c8 ignore next 3 */
72
43
  this.callbacks.reportMessage(CompilerMessages.Fatal_MissingWasmModule({ e }));
73
44
  return false;
74
45
  }
@@ -84,7 +55,9 @@ export class KmnCompiler {
84
55
  // Can't report a message here.
85
56
  throw Error('Must call Compiler.init(callbacks) before proceeding');
86
57
  }
87
- if (!this.wasm) { // fail if wasm not loaded or function not found
58
+ if (!this.Module) {
59
+ /* c8 ignore next 4 */
60
+ // fail if wasm not loaded or function not found
88
61
  this.callbacks.reportMessage(CompilerMessages.Fatal_MissingWasmModule({}));
89
62
  return false;
90
63
  }
@@ -92,14 +65,16 @@ export class KmnCompiler {
92
65
  }
93
66
  run(infile, outfile, options) {
94
67
  if (!this.verifyInitialized()) {
68
+ /* c8 ignore next 2 */
95
69
  return false;
96
70
  }
97
71
  options = { ...baseOptions, ...options };
98
- globalThis[this.callbackName] = this.compilerMessageCallback;
99
- // TODO: use callbacks for file access -- so kmc-kmn is entirely fs agnostic
72
+ globalThis[this.callbackID] = {
73
+ message: this.compilerMessageCallback,
74
+ loadFile: this.loadFileCallback
75
+ };
100
76
  let result = this.runCompiler(infile, outfile, options);
101
- delete globalThis[this.callbackName];
102
- //TODO: write the file out!
77
+ delete globalThis[this.callbackID];
103
78
  if (result) {
104
79
  if (result.kmx) {
105
80
  this.callbacks.fs.writeFileSync(result.kmx.filename, result.kmx.data);
@@ -117,17 +92,38 @@ export class KmnCompiler {
117
92
  this.callbacks.reportMessage(mapErrorFromKmcmplib(line, code, msg));
118
93
  return 1;
119
94
  };
95
+ loadFileCallback = (filename, baseFilename, buffer, bufferSize) => {
96
+ // TODO: we can optimize this in future by avoiding loading the file twice #8885
97
+ let resolvedFilename = this.callbacks.resolveFilename(baseFilename, filename);
98
+ let data = this.callbacks.loadFile(resolvedFilename);
99
+ if (!data) {
100
+ return 0;
101
+ }
102
+ if (buffer == 0) {
103
+ /* We need to return buffer size required */
104
+ return data.byteLength;
105
+ }
106
+ if (bufferSize != data.byteLength) {
107
+ // TODO: consider chucking a wobbly because this is a bug #8885
108
+ /* c8 ignore next 2 */
109
+ return 0;
110
+ }
111
+ this.Module.HEAP8.set(data, buffer);
112
+ return 1;
113
+ };
120
114
  runCompiler(infile, outfile, options) {
121
115
  let result = {};
122
- let wasm_interface = new this.wasm.Module.CompilerInterface();
116
+ let wasm_interface = new this.Module.CompilerInterface();
117
+ let wasm_options = new this.Module.CompilerOptions();
123
118
  let wasm_result = null;
124
119
  try {
125
- wasm_interface.saveDebug = options.saveDebug;
126
- wasm_interface.compilerWarningsAsErrors = options.compilerWarningsAsErrors;
127
- wasm_interface.warnDeprecatedCode = options.warnDeprecatedCode;
128
- wasm_interface.messageCallback = this.callbackName;
129
- wasm_interface.loadFileCallback = this.callbackName; // TODO: this is wrong, needs to be a new callback; not yet used though
130
- wasm_result = this.wasm.Module.kmcmp_compile(infile, wasm_interface);
120
+ wasm_options.saveDebug = options.saveDebug;
121
+ wasm_options.compilerWarningsAsErrors = options.compilerWarningsAsErrors;
122
+ wasm_options.warnDeprecatedCode = options.warnDeprecatedCode;
123
+ wasm_options.shouldAddCompilerVersion = options.shouldAddCompilerVersion;
124
+ wasm_options.target = 0; //CKF_KEYMAN; TODO, support KMW
125
+ wasm_interface.callbacksKey = this.callbackID; // key of object on globalThis
126
+ wasm_result = this.Module.kmcmp_compile(infile, wasm_options, wasm_interface);
131
127
  if (!wasm_result.result) {
132
128
  return null;
133
129
  }
@@ -139,11 +135,12 @@ export class KmnCompiler {
139
135
  }
140
136
  result.kmx = {
141
137
  filename: outfile,
142
- data: new Uint8Array(this.wasm.Module.HEAP8.buffer, wasm_result.kmx, wasm_result.kmxSize)
138
+ data: new Uint8Array(this.Module.HEAP8.buffer, wasm_result.kmx, wasm_result.kmxSize)
143
139
  };
144
140
  return result;
145
141
  }
146
142
  catch (e) {
143
+ /* c8 ignore next 3 */
147
144
  this.callbacks.reportMessage(CompilerMessages.Fatal_UnexpectedException({ e: e }));
148
145
  return null;
149
146
  }
@@ -152,6 +149,7 @@ export class KmnCompiler {
152
149
  wasm_result.delete();
153
150
  }
154
151
  wasm_interface.delete();
152
+ wasm_options.delete();
155
153
  }
156
154
  }
157
155
  runKvkCompiler(kvksFilename, kmnFilename, kmxFilename) {
@@ -164,6 +162,7 @@ export class KmnCompiler {
164
162
  }
165
163
  catch (e) {
166
164
  console.log(e);
165
+ // TODO: also unit test #8886
167
166
  // TODO: this.callbacks.reportMessage(CompilerMessages.Error_InvalidKvksFile({e}));
168
167
  return null;
169
168
  }
@@ -171,6 +170,7 @@ export class KmnCompiler {
171
170
  let vk = reader.transform(kvks, errors);
172
171
  if (!vk || errors.length) {
173
172
  console.dir(errors);
173
+ // TODO: also unit test #8886
174
174
  // TODO: this.callbacks.reportMessage(CompilerMessages.Error_InvalidKvksFile({e}));
175
175
  return null;
176
176
  }
@@ -188,21 +188,22 @@ export class KmnCompiler {
188
188
  */
189
189
  parseUnicodeSet(pattern, bufferSize) {
190
190
  if (!this.verifyInitialized()) {
191
+ /* c8 ignore next 2 */
191
192
  return null;
192
193
  }
193
194
  if (!bufferSize) {
195
+ /* c8 ignore next 2 */
194
196
  bufferSize = 100; // TODO-LDML: Preflight mode? Reuse buffer?
195
197
  }
196
- const { Module } = this.wasm;
197
- const buf = Module.asm.malloc(bufferSize * 2 * Module.HEAPU32.BYTES_PER_ELEMENT);
198
+ const buf = this.Module.asm.malloc(bufferSize * 2 * this.Module.HEAPU32.BYTES_PER_ELEMENT);
198
199
  // TODO-LDML: Catch OOM
199
- const rc = this.wasm.parseUnicodeSet(pattern, buf, bufferSize);
200
+ const rc = this.Module.kmcmp_parseUnicodeSet(pattern, buf, bufferSize);
200
201
  if (rc >= 0) {
201
202
  const ranges = [];
202
- const startu = (buf / Module.HEAPU32.BYTES_PER_ELEMENT);
203
+ const startu = (buf / this.Module.HEAPU32.BYTES_PER_ELEMENT);
203
204
  for (let i = 0; i < rc; i++) {
204
- const low = Module.HEAPU32[startu + (i * 2) + 0];
205
- const high = Module.HEAPU32[startu + (i * 2) + 1];
205
+ const low = this.Module.HEAPU32[startu + (i * 2) + 0];
206
+ const high = this.Module.HEAPU32[startu + (i * 2) + 1];
206
207
  ranges.push([low, high]);
207
208
  }
208
209
  // TODO-LDML: no free??
@@ -239,6 +240,7 @@ function getUnicodeSetError(rc) {
239
240
  case KMCMP_FATAL_OUT_OF_RANGE:
240
241
  return CompilerMessages.Fatal_UnicodeSetOutOfRange();
241
242
  default:
243
+ /* c8 ignore next */
242
244
  return CompilerMessages.Fatal_UnexpectedException({ e: `Unexpected UnicodeSet error code ${rc}` });
243
245
  }
244
246
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"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"}