@keymanapp/kmc-kmn 17.0.112-alpha → 17.0.114-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.
@@ -1,33 +1,23 @@
1
1
  import { CompilerCallbacks } from '@keymanapp/common-types';
2
+ export interface CompilerResultFile {
3
+ filename: string;
4
+ data: Uint8Array;
5
+ }
6
+ export interface CompilerResult {
7
+ kmx?: CompilerResultFile;
8
+ kvk?: CompilerResultFile;
9
+ js?: CompilerResultFile;
10
+ }
2
11
  export interface CompilerOptions {
3
12
  shouldAddCompilerVersion?: boolean;
4
13
  saveDebug?: boolean;
5
14
  compilerWarningsAsErrors?: boolean;
6
15
  warnDeprecatedCode?: boolean;
7
16
  }
8
- /**
9
- * Pointer in wasm-space
10
- */
11
- type WasmPtr = number;
12
- /**
13
- * The wrapped functions
14
- */
15
- declare class WasmWrapper {
16
- Module: any;
17
- compileKeyboardFile?: (pszInfile: string, pszOutfile: string, aSaveDebug: number, aCompilerWarningsAsErrors: number, aWarnDeprecatedCode: number, msgProc: string) => boolean;
18
- parseUnicodeSet?: (pat: string, buf: WasmPtr, length: number) => number;
19
- setCompilerOptions?: (shouldAddCompilerVersion: number) => boolean;
20
- constructor(wasmModule: any);
21
- /**
22
- * Entry point into Wasm functions
23
- * @returns WasmWrapper
24
- */
25
- static load(): Promise<WasmWrapper>;
26
- }
27
17
  export declare class KmnCompiler {
18
+ private Module;
28
19
  callbackName: string;
29
20
  callbacks: CompilerCallbacks;
30
- wasm: WasmWrapper;
31
21
  constructor();
32
22
  init(callbacks: CompilerCallbacks): Promise<boolean>;
33
23
  /**
@@ -38,6 +28,7 @@ export declare class KmnCompiler {
38
28
  run(infile: string, outfile: string, options?: CompilerOptions): boolean;
39
29
  private compilerMessageCallback;
40
30
  private runCompiler;
31
+ private runKvkCompiler;
41
32
  /**
42
33
  *
43
34
  * @param pattern UnicodeSet pattern such as `[a-z]`
@@ -59,5 +50,4 @@ export declare class UnicodeSet {
59
50
  get length(): number;
60
51
  toString(): string;
61
52
  }
62
- export {};
63
53
  //# sourceMappingURL=compiler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,yBAAyB,CAAC;AAI3E,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;IAa/E,OAAO,CAAC,uBAAuB,CAG9B;IAED,OAAO,CAAC,WAAW;IAkBnB;;;;;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;AAgBD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAM;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,iBAAiB,CAAC;;IAOhB,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;IA2CnB,OAAO,CAAC,cAAc;IA0BtB;;;;;OAKG;IACI,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAI,UAAU,GAAG,IAAI;CA8BhF;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,28 +1,16 @@
1
1
  /*
2
2
  TODO: implement additional interfaces:
3
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
- );
4
+ typedef bool (*kmcmp_ValidateJsonMessageProc)();
5
+ extern "C" bool kmcmp_ValidateJsonFile();
22
6
  */
7
+ // TODO: rename wasm-host?
8
+ import { KvkFileWriter, KvksFileReader } from '@keymanapp/common-types';
23
9
  import loadWasmHost from '../import/kmcmplib/wasm-host.js';
24
10
  import { CompilerMessages, mapErrorFromKmcmplib } from './messages.js';
25
11
  ;
12
+ ;
13
+ ;
26
14
  const baseOptions = {
27
15
  shouldAddCompilerVersion: true,
28
16
  saveDebug: true,
@@ -35,50 +23,19 @@ const baseOptions = {
35
23
  * instance of the Compiler class
36
24
  */
37
25
  let callbackProcIdentifier = 0;
38
- /**
39
- * The wrapped functions
40
- */
41
- class WasmWrapper {
42
- Module;
43
- compileKeyboardFile;
44
- parseUnicodeSet;
45
- setCompilerOptions;
46
- constructor(wasmModule) {
47
- this.Module = wasmModule;
48
- if (!wasmModule) {
49
- throw Error(`wasm host did not load`);
50
- }
51
- this.compileKeyboardFile = this.Module.cwrap('kmcmp_Wasm_CompileKeyboardFile', 'boolean', ['string', 'string', 'number', 'number', 'number', 'string']);
52
- this.parseUnicodeSet = this.Module.cwrap('kmcmp_Wasm_ParseUnicodeSet', 'number', ['string', 'number', 'number']);
53
- this.setCompilerOptions = this.Module.cwrap('kmcmp_Wasm_SetCompilerOptions', 'boolean', ['number']);
54
- if (this.parseUnicodeSet === undefined
55
- || this.setCompilerOptions === undefined
56
- || this.compileKeyboardFile === undefined) {
57
- throw Error(`some wasm functions did not load properly.`);
58
- }
59
- }
60
- /**
61
- * Entry point into Wasm functions
62
- * @returns WasmWrapper
63
- */
64
- static async load() {
65
- return new WasmWrapper(await loadWasmHost());
66
- }
67
- }
68
- ;
69
26
  export class KmnCompiler {
27
+ Module;
70
28
  callbackName;
71
29
  callbacks;
72
- wasm;
73
30
  constructor() {
74
31
  this.callbackName = 'kmnCompilerCallback' + callbackProcIdentifier;
75
32
  callbackProcIdentifier++;
76
33
  }
77
34
  async init(callbacks) {
78
35
  this.callbacks = callbacks;
79
- if (!this.wasm) {
36
+ if (!this.Module) {
80
37
  try {
81
- this.wasm = await WasmWrapper.load();
38
+ this.Module = await loadWasmHost();
82
39
  }
83
40
  catch (e) {
84
41
  this.callbacks.reportMessage(CompilerMessages.Fatal_MissingWasmModule({ e }));
@@ -96,7 +53,7 @@ export class KmnCompiler {
96
53
  // Can't report a message here.
97
54
  throw Error('Must call Compiler.init(callbacks) before proceeding');
98
55
  }
99
- if (!this.wasm) { // fail if wasm not loaded or function not found
56
+ if (!this.Module) { // fail if wasm not loaded or function not found
100
57
  this.callbacks.reportMessage(CompilerMessages.Fatal_MissingWasmModule({}));
101
58
  return false;
102
59
  }
@@ -111,23 +68,90 @@ export class KmnCompiler {
111
68
  // TODO: use callbacks for file access -- so kmc-kmn is entirely fs agnostic
112
69
  let result = this.runCompiler(infile, outfile, options);
113
70
  delete globalThis[this.callbackName];
114
- return result;
71
+ //TODO: write the file out!
72
+ if (result) {
73
+ if (result.kmx) {
74
+ this.callbacks.fs.writeFileSync(result.kmx.filename, result.kmx.data);
75
+ }
76
+ if (result.kvk) {
77
+ this.callbacks.fs.writeFileSync(result.kvk.filename, result.kvk.data);
78
+ }
79
+ if (result.js) {
80
+ this.callbacks.fs.writeFileSync(result.js.filename, result.js.data);
81
+ }
82
+ }
83
+ return !!result;
115
84
  }
116
85
  compilerMessageCallback = (line, code, msg) => {
117
86
  this.callbacks.reportMessage(mapErrorFromKmcmplib(line, code, msg));
118
87
  return 1;
119
88
  };
120
89
  runCompiler(infile, outfile, options) {
90
+ let result = {};
91
+ let wasm_interface = new this.Module.CompilerInterface();
92
+ let wasm_options = new this.Module.CompilerOptions();
93
+ let wasm_result = null;
121
94
  try {
122
- if (!this.wasm.setCompilerOptions(options.shouldAddCompilerVersion ? 1 : 0)) {
123
- this.callbacks.reportMessage(CompilerMessages.Fatal_UnableToSetCompilerOptions());
95
+ wasm_options.saveDebug = options.saveDebug;
96
+ wasm_options.compilerWarningsAsErrors = options.compilerWarningsAsErrors;
97
+ wasm_options.warnDeprecatedCode = options.warnDeprecatedCode;
98
+ wasm_options.shouldAddCompilerVersion = options.shouldAddCompilerVersion;
99
+ wasm_options.target = 0; //CKF_KEYMAN; TODO, support KMW
100
+ wasm_interface.messageCallback = this.callbackName;
101
+ wasm_interface.loadFileCallback = this.callbackName; // TODO: this is wrong, needs to be a new callback; not yet used though
102
+ wasm_result = this.Module.kmcmp_compile(infile, wasm_options, wasm_interface);
103
+ if (!wasm_result.result) {
104
+ return null;
105
+ }
106
+ if (wasm_result.kvksFilename) {
107
+ result.kvk = this.runKvkCompiler(wasm_result.kvksFilename, infile, outfile);
108
+ if (!result.kvk) {
109
+ return null;
110
+ }
124
111
  }
125
- return this.wasm.compileKeyboardFile(infile, outfile, options.saveDebug ? 1 : 0, options.compilerWarningsAsErrors ? 1 : 0, options.warnDeprecatedCode ? 1 : 0, this.callbackName);
112
+ result.kmx = {
113
+ filename: outfile,
114
+ data: new Uint8Array(this.Module.HEAP8.buffer, wasm_result.kmx, wasm_result.kmxSize)
115
+ };
116
+ return result;
126
117
  }
127
118
  catch (e) {
128
119
  this.callbacks.reportMessage(CompilerMessages.Fatal_UnexpectedException({ e: e }));
129
- return false;
120
+ return null;
121
+ }
122
+ finally {
123
+ if (wasm_result) {
124
+ wasm_result.delete();
125
+ }
126
+ wasm_interface.delete();
127
+ wasm_options.delete();
128
+ }
129
+ }
130
+ runKvkCompiler(kvksFilename, kmnFilename, kmxFilename) {
131
+ // The compiler detected a .kvks file, which needs to be captured
132
+ let reader = new KvksFileReader();
133
+ kvksFilename = this.callbacks.resolveFilename(kmnFilename, kvksFilename);
134
+ let kvks = reader.read(this.callbacks.loadFile(kvksFilename));
135
+ try {
136
+ reader.validate(kvks, this.callbacks.loadSchema('kvks'));
137
+ }
138
+ catch (e) {
139
+ console.log(e);
140
+ // TODO: this.callbacks.reportMessage(CompilerMessages.Error_InvalidKvksFile({e}));
141
+ return null;
142
+ }
143
+ let errors = []; //TODO: KVKSParseError[];
144
+ let vk = reader.transform(kvks, errors);
145
+ if (!vk || errors.length) {
146
+ console.dir(errors);
147
+ // TODO: this.callbacks.reportMessage(CompilerMessages.Error_InvalidKvksFile({e}));
148
+ return null;
130
149
  }
150
+ let writer = new KvkFileWriter();
151
+ return {
152
+ filename: this.callbacks.path.join(this.callbacks.path.dirname(kmxFilename), this.callbacks.path.basename(kvksFilename, '.kvks') + '.kvk'),
153
+ data: writer.write(vk)
154
+ };
131
155
  }
132
156
  /**
133
157
  *
@@ -142,16 +166,15 @@ export class KmnCompiler {
142
166
  if (!bufferSize) {
143
167
  bufferSize = 100; // TODO-LDML: Preflight mode? Reuse buffer?
144
168
  }
145
- const { Module } = this.wasm;
146
- const buf = Module.asm.malloc(bufferSize * 2 * Module.HEAPU32.BYTES_PER_ELEMENT);
169
+ const buf = this.Module.asm.malloc(bufferSize * 2 * this.Module.HEAPU32.BYTES_PER_ELEMENT);
147
170
  // TODO-LDML: Catch OOM
148
- const rc = this.wasm.parseUnicodeSet(pattern, buf, bufferSize);
171
+ const rc = this.Module.kmcmp_parseUnicodeSet(pattern, buf, bufferSize);
149
172
  if (rc >= 0) {
150
173
  const ranges = [];
151
- const startu = (buf / Module.HEAPU32.BYTES_PER_ELEMENT);
174
+ const startu = (buf / this.Module.HEAPU32.BYTES_PER_ELEMENT);
152
175
  for (let i = 0; i < rc; i++) {
153
- const low = Module.HEAPU32[startu + (i * 2) + 0];
154
- const high = Module.HEAPU32[startu + (i * 2) + 1];
176
+ const low = this.Module.HEAPU32[startu + (i * 2) + 0];
177
+ const high = this.Module.HEAPU32[startu + (i * 2) + 1];
155
178
  ranges.push([low, high]);
156
179
  }
157
180
  // TODO-LDML: no free??
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;EAqBE;AAIF,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAOtE,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;;;;GAIG;AACH,IAAI,sBAAsB,GAAG,CAAC,CAAC;AAO/B;;GAEG;AACH,MAAM,WAAW;IACf,MAAM,CAAM;IAEZ,mBAAmB,CAA2J;IAC9K,eAAe,CAAyD;IACxE,kBAAkB,CAAiD;IAEnE,YAAY,UAAe;QACzB,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;QACzB,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAC;SACvC;QACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxJ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEpG,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;eACjC,IAAI,CAAC,kBAAkB,KAAK,SAAS;eACrC,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE;YACzC,MAAM,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC7D;IACH,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,IAAI;QACtB,OAAO,IAAI,WAAW,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC;IAC/C,CAAC;CACF;AAAA,CAAC;AAEF,MAAM,OAAO,WAAW;IACtB,YAAY,CAAS;IACrB,SAAS,CAAoB;IAC7B,IAAI,CAAc;IAElB;QACE,IAAI,CAAC,YAAY,GAAG,qBAAqB,GAAG,sBAAsB,CAAC;QACnE,sBAAsB,EAAE,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,SAA4B;QAC5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAG,CAAC,IAAI,CAAC,IAAI,EAAE;YACb,IAAI;gBACF,IAAI,CAAC,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;aACtC;YAAC,OAAM,CAAM,EAAE;gBACd,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;gBAC5E,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAClC,CAAC;IAED;;;OAGG;IACI,iBAAiB;QACtB,IAAG,CAAC,IAAI,CAAC,SAAS,EAAE;YAClB,+BAA+B;YAC/B,MAAM,KAAK,CAAC,sDAAsD,CAAC,CAAC;SACrE;QACD,IAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,gDAAgD;YAC/D,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3E,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,GAAG,CAAC,MAAc,EAAE,OAAe,EAAE,OAAyB;QACnE,IAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;QAED,OAAO,GAAG,EAAC,GAAG,WAAW,EAAE,GAAG,OAAO,EAAC,CAAC;QACtC,UAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC;QACtE,4EAA4E;QAC5E,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACxD,OAAQ,UAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,uBAAuB,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAU,EAAE;QACpF,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,CAAC;IACX,CAAC,CAAA;IAEO,WAAW,CAAC,MAAc,EAAE,OAAe,EAAE,OAAwB;QAC3E,IAAI;YACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC3E,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,gCAAgC,EAAE,CAAC,CAAC;aACnF;YACD,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAClC,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,EAClC,IAAI,CAAC,YAAY,CAAC,CAAC;SACtB;QAAC,OAAM,CAAC,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;YAChF,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED;;;;;OAKG;IACI,eAAe,CAAC,OAAe,EAAE,UAAkB;QACxD,IAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;QAED,IAAI,CAAC,UAAU,EAAE;YACf,UAAU,GAAG,GAAG,CAAC,CAAC,2CAA2C;SAC9D;QACD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACjF,uBAAuB;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAC/D,IAAI,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,MAAM,GAAG,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;aAC1B;YACD,uBAAuB;YACvB,wBAAwB;YACxB,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SACxC;aAAM;YACL,kBAAkB;YAClB,uBAAuB;YACvB,wBAAwB;YACxB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC;SACb;IACH,CAAC;CACF;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,EAAU;IACpC,kBAAkB;IAClB,MAAM,sBAAsB,GAAG,CAAC,CAAC,CAAC;IAClC,MAAM,uBAAuB,GAAG,CAAC,CAAC,CAAC;IACnC,MAAM,gCAAgC,GAAG,CAAC,CAAC,CAAC;IAC5C,MAAM,wBAAwB,GAAG,CAAC,CAAC,CAAC;IACpC,QAAO,EAAE,EAAE;QACT,KAAK,sBAAsB;YACxB,OAAO,gBAAgB,CAAC,2BAA2B,EAAE,CAAC;QACzD,KAAK,uBAAuB;YAC5B,OAAO,gBAAgB,CAAC,0BAA0B,EAAE,CAAC;QACrD,KAAK,gCAAgC;YAClC,OAAO,gBAAgB,CAAC,6BAA6B,EAAE,CAAC;QAC3D,KAAK,wBAAwB;YAC3B,OAAO,gBAAgB,CAAC,0BAA0B,EAAE,CAAC;QACvD;YACE,OAAO,gBAAgB,CAAC,yBAAyB,CAAC,EAAC,CAAC,EAAE,oCAAoC,EAAE,EAAE,EAAC,CAAC,CAAC;KACpG;AACH,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,UAAU;IACF;IAAwB;IAA3C,YAAmB,OAAe,EAAS,MAAkB;QAA1C,YAAO,GAAP,OAAO,CAAQ;QAAS,WAAM,GAAN,MAAM,CAAY;IAC7D,CAAC;IACD;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"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"}