@5ive-tech/cli 1.0.4

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 (139) hide show
  1. package/README.md +226 -0
  2. package/dist/assets/vm/five_vm_wasm.d.ts +762 -0
  3. package/dist/assets/vm/five_vm_wasm.js +3754 -0
  4. package/dist/assets/vm/five_vm_wasm_bg.wasm +0 -0
  5. package/dist/assets/vm/five_vm_wasm_bg.wasm.d.ts +247 -0
  6. package/dist/assets/vm/package.json +11 -0
  7. package/dist/cli.d.ts +47 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +343 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/commands/analyze.d.ts +3 -0
  12. package/dist/commands/analyze.d.ts.map +1 -0
  13. package/dist/commands/analyze.js +435 -0
  14. package/dist/commands/analyze.js.map +1 -0
  15. package/dist/commands/build.d.ts +3 -0
  16. package/dist/commands/build.d.ts.map +1 -0
  17. package/dist/commands/build.js +66 -0
  18. package/dist/commands/build.js.map +1 -0
  19. package/dist/commands/compile.d.ts +3 -0
  20. package/dist/commands/compile.d.ts.map +1 -0
  21. package/dist/commands/compile.js +872 -0
  22. package/dist/commands/compile.js.map +1 -0
  23. package/dist/commands/config.d.ts +3 -0
  24. package/dist/commands/config.d.ts.map +1 -0
  25. package/dist/commands/config.js +431 -0
  26. package/dist/commands/config.js.map +1 -0
  27. package/dist/commands/deploy-and-execute.d.ts +3 -0
  28. package/dist/commands/deploy-and-execute.d.ts.map +1 -0
  29. package/dist/commands/deploy-and-execute.js +317 -0
  30. package/dist/commands/deploy-and-execute.js.map +1 -0
  31. package/dist/commands/deploy.d.ts +21 -0
  32. package/dist/commands/deploy.d.ts.map +1 -0
  33. package/dist/commands/deploy.js +806 -0
  34. package/dist/commands/deploy.js.map +1 -0
  35. package/dist/commands/donate.d.ts +4 -0
  36. package/dist/commands/donate.d.ts.map +1 -0
  37. package/dist/commands/donate.js +104 -0
  38. package/dist/commands/donate.js.map +1 -0
  39. package/dist/commands/execute.d.ts +6 -0
  40. package/dist/commands/execute.d.ts.map +1 -0
  41. package/dist/commands/execute.js +749 -0
  42. package/dist/commands/execute.js.map +1 -0
  43. package/dist/commands/fmt.d.ts +3 -0
  44. package/dist/commands/fmt.d.ts.map +1 -0
  45. package/dist/commands/fmt.js +327 -0
  46. package/dist/commands/fmt.js.map +1 -0
  47. package/dist/commands/help.d.ts +6 -0
  48. package/dist/commands/help.d.ts.map +1 -0
  49. package/dist/commands/help.js +224 -0
  50. package/dist/commands/help.js.map +1 -0
  51. package/dist/commands/index.d.ts +45 -0
  52. package/dist/commands/index.d.ts.map +1 -0
  53. package/dist/commands/index.js +119 -0
  54. package/dist/commands/index.js.map +1 -0
  55. package/dist/commands/init.d.ts +3 -0
  56. package/dist/commands/init.d.ts.map +1 -0
  57. package/dist/commands/init.js +887 -0
  58. package/dist/commands/init.js.map +1 -0
  59. package/dist/commands/local.d.ts +3 -0
  60. package/dist/commands/local.d.ts.map +1 -0
  61. package/dist/commands/local.js +703 -0
  62. package/dist/commands/local.js.map +1 -0
  63. package/dist/commands/namespace.d.ts +3 -0
  64. package/dist/commands/namespace.d.ts.map +1 -0
  65. package/dist/commands/namespace.js +328 -0
  66. package/dist/commands/namespace.js.map +1 -0
  67. package/dist/commands/template.d.ts +4 -0
  68. package/dist/commands/template.d.ts.map +1 -0
  69. package/dist/commands/template.js +486 -0
  70. package/dist/commands/template.js.map +1 -0
  71. package/dist/commands/test.d.ts +6 -0
  72. package/dist/commands/test.d.ts.map +1 -0
  73. package/dist/commands/test.js +890 -0
  74. package/dist/commands/test.js.map +1 -0
  75. package/dist/commands/version.d.ts +6 -0
  76. package/dist/commands/version.d.ts.map +1 -0
  77. package/dist/commands/version.js +339 -0
  78. package/dist/commands/version.js.map +1 -0
  79. package/dist/config/ConfigManager.d.ts +69 -0
  80. package/dist/config/ConfigManager.d.ts.map +1 -0
  81. package/dist/config/ConfigManager.js +261 -0
  82. package/dist/config/ConfigManager.js.map +1 -0
  83. package/dist/config/index.d.ts +10 -0
  84. package/dist/config/index.d.ts.map +1 -0
  85. package/dist/config/index.js +21 -0
  86. package/dist/config/index.js.map +1 -0
  87. package/dist/config/types.d.ts +35 -0
  88. package/dist/config/types.d.ts.map +1 -0
  89. package/dist/config/types.js +105 -0
  90. package/dist/config/types.js.map +1 -0
  91. package/dist/index.d.ts +3 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +29 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/project/ProjectLoader.d.ts +12 -0
  96. package/dist/project/ProjectLoader.d.ts.map +1 -0
  97. package/dist/project/ProjectLoader.js +115 -0
  98. package/dist/project/ProjectLoader.js.map +1 -0
  99. package/dist/types.d.ts +334 -0
  100. package/dist/types.d.ts.map +1 -0
  101. package/dist/types.js +2 -0
  102. package/dist/types.js.map +1 -0
  103. package/dist/utils/AccountFixtureGenerator.d.ts +48 -0
  104. package/dist/utils/AccountFixtureGenerator.d.ts.map +1 -0
  105. package/dist/utils/AccountFixtureGenerator.js +265 -0
  106. package/dist/utils/AccountFixtureGenerator.js.map +1 -0
  107. package/dist/utils/FiveFileManager.d.ts +96 -0
  108. package/dist/utils/FiveFileManager.d.ts.map +1 -0
  109. package/dist/utils/FiveFileManager.js +329 -0
  110. package/dist/utils/FiveFileManager.js.map +1 -0
  111. package/dist/utils/ascii-art.d.ts +72 -0
  112. package/dist/utils/ascii-art.d.ts.map +1 -0
  113. package/dist/utils/ascii-art.js +314 -0
  114. package/dist/utils/ascii-art.js.map +1 -0
  115. package/dist/utils/cli-ui.d.ts +39 -0
  116. package/dist/utils/cli-ui.d.ts.map +1 -0
  117. package/dist/utils/cli-ui.js +75 -0
  118. package/dist/utils/cli-ui.js.map +1 -0
  119. package/dist/utils/fileUtils.d.ts +25 -0
  120. package/dist/utils/fileUtils.d.ts.map +1 -0
  121. package/dist/utils/fileUtils.js +50 -0
  122. package/dist/utils/fileUtils.js.map +1 -0
  123. package/dist/utils/logger.d.ts +53 -0
  124. package/dist/utils/logger.d.ts.map +1 -0
  125. package/dist/utils/logger.js +287 -0
  126. package/dist/utils/logger.js.map +1 -0
  127. package/dist/wasm/compiler.d.ts +101 -0
  128. package/dist/wasm/compiler.d.ts.map +1 -0
  129. package/dist/wasm/compiler.js +906 -0
  130. package/dist/wasm/compiler.js.map +1 -0
  131. package/dist/wasm/loader.d.ts +2 -0
  132. package/dist/wasm/loader.d.ts.map +1 -0
  133. package/dist/wasm/loader.js +90 -0
  134. package/dist/wasm/loader.js.map +1 -0
  135. package/dist/wasm/vm.d.ts +32 -0
  136. package/dist/wasm/vm.d.ts.map +1 -0
  137. package/dist/wasm/vm.js +440 -0
  138. package/dist/wasm/vm.js.map +1 -0
  139. package/package.json +100 -0
@@ -0,0 +1,287 @@
1
+ // Logger for Five CLI output.
2
+ import { appendFile, mkdir, stat, rename, unlink } from 'fs/promises';
3
+ import { dirname } from 'path';
4
+ import chalk from 'chalk';
5
+ export class FiveLogger {
6
+ options;
7
+ context = new Map();
8
+ performanceMarks = new Map();
9
+ constructor(options = {}) {
10
+ this.options = {
11
+ level: 'info',
12
+ enableColors: true,
13
+ enableTimestamps: true,
14
+ enableContext: false,
15
+ maxLogSize: 10 * 1024 * 1024, // 10MB
16
+ maxBackups: 5,
17
+ enablePerformance: false,
18
+ ...options
19
+ };
20
+ }
21
+ debug(message, ...args) {
22
+ if (this.shouldLog('debug')) {
23
+ this.log('debug', message, args);
24
+ }
25
+ }
26
+ info(message, ...args) {
27
+ if (this.shouldLog('info')) {
28
+ this.log('info', message, args);
29
+ }
30
+ }
31
+ warn(message, ...args) {
32
+ if (this.shouldLog('warn')) {
33
+ this.log('warn', message, args);
34
+ }
35
+ }
36
+ error(message, ...args) {
37
+ if (this.shouldLog('error')) {
38
+ this.log('error', message, args);
39
+ }
40
+ }
41
+ perf(operation, message, ...args) {
42
+ if (this.options.enablePerformance) {
43
+ const duration = this.endPerformanceMark(operation);
44
+ const perfMessage = duration !== null
45
+ ? `${message} (${duration}ms)`
46
+ : message;
47
+ this.info(`[PERF] ${perfMessage}`, ...args);
48
+ }
49
+ }
50
+ startPerformanceMark(operation) {
51
+ if (this.options.enablePerformance) {
52
+ this.performanceMarks.set(operation, Date.now());
53
+ }
54
+ }
55
+ endPerformanceMark(operation) {
56
+ if (!this.options.enablePerformance) {
57
+ return null;
58
+ }
59
+ const startTime = this.performanceMarks.get(operation);
60
+ if (startTime) {
61
+ const duration = Date.now() - startTime;
62
+ this.performanceMarks.delete(operation);
63
+ return duration;
64
+ }
65
+ return null;
66
+ }
67
+ addContext(key, value) {
68
+ this.context.set(key, value);
69
+ }
70
+ removeContext(key) {
71
+ this.context.delete(key);
72
+ }
73
+ clearContext() {
74
+ this.context.clear();
75
+ }
76
+ child(context) {
77
+ const childLogger = new FiveLogger(this.options);
78
+ // Copy parent context
79
+ for (const [key, value] of this.context) {
80
+ childLogger.addContext(key, value);
81
+ }
82
+ // Add child context
83
+ for (const [key, value] of Object.entries(context)) {
84
+ childLogger.addContext(key, value);
85
+ }
86
+ return childLogger;
87
+ }
88
+ logObject(level, object, label) {
89
+ if (this.shouldLog(level)) {
90
+ const message = label ? `${label}:` : 'Object:';
91
+ this.log(level, message, [JSON.stringify(object, null, 2)]);
92
+ }
93
+ }
94
+ command(command, args, duration) {
95
+ const formattedCommand = `${command} ${args.join(' ')}`;
96
+ const message = duration
97
+ ? `Command executed: ${formattedCommand} (${duration}ms)`
98
+ : `Executing command: ${formattedCommand}`;
99
+ this.info(message);
100
+ }
101
+ compilation(sourceFile, success, duration, details) {
102
+ const status = success ? 'SUCCESS' : 'FAILED';
103
+ const color = success ? chalk.green : chalk.red;
104
+ if (this.options.enableColors) {
105
+ console.log(color(`[COMPILE ${status}] ${sourceFile} (${duration}ms)`));
106
+ }
107
+ else {
108
+ console.log(`[COMPILE ${status}] ${sourceFile} (${duration}ms)`);
109
+ }
110
+ if (details && this.shouldLog('debug')) {
111
+ this.logObject('debug', details, 'Compilation details');
112
+ }
113
+ }
114
+ /**
115
+ * Log VM execution results
116
+ */
117
+ execution(success, computeUnits, duration, details) {
118
+ const status = success ? 'SUCCESS' : 'FAILED';
119
+ const color = success ? chalk.green : chalk.red;
120
+ const message = `[VM ${status}] CU: ${computeUnits}, Time: ${duration}ms`;
121
+ if (this.options.enableColors) {
122
+ console.log(color(message));
123
+ }
124
+ else {
125
+ console.log(message);
126
+ }
127
+ if (details && this.shouldLog('debug')) {
128
+ this.logObject('debug', details, 'Execution details');
129
+ }
130
+ }
131
+ /**
132
+ * Core logging method
133
+ */
134
+ log(level, message, args) {
135
+ const logEntry = this.formatLogEntry(level, message, args);
136
+ // Output to console
137
+ this.outputToConsole(level, logEntry);
138
+ // Output to file if configured
139
+ if (this.options.logFile) {
140
+ this.outputToFile(logEntry).catch(err => {
141
+ console.error('Failed to write to log file:', err);
142
+ });
143
+ }
144
+ }
145
+ /**
146
+ * Format log entry with timestamp, level, context, and message
147
+ */
148
+ formatLogEntry(level, message, args) {
149
+ const parts = [];
150
+ if (this.options.enableTimestamps) {
151
+ const timestamp = new Date().toISOString();
152
+ parts.push(`[${timestamp}]`);
153
+ }
154
+ parts.push(`[${level.toUpperCase()}]`);
155
+ if (this.options.enableContext && this.context.size > 0) {
156
+ const contextStr = Array.from(this.context.entries())
157
+ .map(([key, value]) => `${key}=${value}`)
158
+ .join(',');
159
+ parts.push(`[${contextStr}]`);
160
+ }
161
+ parts.push(message);
162
+ if (args.length > 0) {
163
+ const argsStr = args.map(arg => typeof arg === 'object' ? JSON.stringify(arg) : String(arg)).join(' ');
164
+ parts.push(argsStr);
165
+ }
166
+ return parts.join(' ');
167
+ }
168
+ outputToConsole(level, logEntry) {
169
+ if (!this.options.enableColors) {
170
+ console.log(logEntry);
171
+ return;
172
+ }
173
+ switch (level) {
174
+ case 'debug':
175
+ console.log(chalk.gray(logEntry));
176
+ break;
177
+ case 'info':
178
+ console.log(chalk.cyan(logEntry));
179
+ break;
180
+ case 'warn':
181
+ console.log(chalk.yellow(logEntry));
182
+ break;
183
+ case 'error':
184
+ console.error(chalk.red(logEntry));
185
+ break;
186
+ default:
187
+ console.log(logEntry);
188
+ }
189
+ }
190
+ async outputToFile(logEntry) {
191
+ if (!this.options.logFile) {
192
+ return;
193
+ }
194
+ try {
195
+ const logDir = dirname(this.options.logFile);
196
+ await mkdir(logDir, { recursive: true });
197
+ await appendFile(this.options.logFile, logEntry + '\n');
198
+ if (this.options.maxLogSize) {
199
+ await this.rotateLogIfNeeded();
200
+ }
201
+ }
202
+ catch (error) {
203
+ }
204
+ }
205
+ async rotateLogIfNeeded() {
206
+ if (!this.options.logFile || !this.options.maxLogSize) {
207
+ return;
208
+ }
209
+ try {
210
+ const stats = await stat(this.options.logFile);
211
+ if (stats.size < this.options.maxLogSize) {
212
+ return;
213
+ }
214
+ const maxBackups = this.options.maxBackups || 5;
215
+ const baseLogFile = this.options.logFile;
216
+ const oldestBackup = `${baseLogFile}.${maxBackups}`;
217
+ try {
218
+ await unlink(oldestBackup);
219
+ }
220
+ catch (e) {
221
+ }
222
+ for (let i = maxBackups - 1; i >= 1; i--) {
223
+ const source = `${baseLogFile}.${i}`;
224
+ const dest = `${baseLogFile}.${i + 1}`;
225
+ try {
226
+ await rename(source, dest);
227
+ }
228
+ catch (e) {
229
+ }
230
+ }
231
+ try {
232
+ await rename(baseLogFile, `${baseLogFile}.1`);
233
+ }
234
+ catch (e) {
235
+ }
236
+ }
237
+ catch (error) {
238
+ }
239
+ }
240
+ shouldLog(messageLevel) {
241
+ const levels = {
242
+ debug: 0,
243
+ info: 1,
244
+ warn: 2,
245
+ error: 3
246
+ };
247
+ return levels[messageLevel] >= levels[this.options.level];
248
+ }
249
+ updateOptions(options) {
250
+ this.options = { ...this.options, ...options };
251
+ }
252
+ getOptions() {
253
+ return { ...this.options };
254
+ }
255
+ }
256
+ export function createLogger(options = {}) {
257
+ const defaultOptions = {
258
+ level: process.env.DEBUG ? 'debug' : 'info',
259
+ enableColors: process.stdout.isTTY,
260
+ enableTimestamps: false,
261
+ enableContext: !!process.env.DEBUG,
262
+ enablePerformance: !!process.env.PERF
263
+ };
264
+ return new FiveLogger({ ...defaultOptions, ...options });
265
+ }
266
+ export function createFileLogger(logFile, options = {}) {
267
+ return new FiveLogger({
268
+ ...options,
269
+ logFile,
270
+ enableColors: false, // File output shouldn't have ANSI colors
271
+ enableTimestamps: true
272
+ });
273
+ }
274
+ export function measureTime(logger, operation, fn) {
275
+ logger.startPerformanceMark(operation);
276
+ const result = fn();
277
+ if (result instanceof Promise) {
278
+ return result.finally(() => {
279
+ logger.perf(operation, `Completed ${operation}`);
280
+ });
281
+ }
282
+ else {
283
+ logger.perf(operation, `Completed ${operation}`);
284
+ return result;
285
+ }
286
+ }
287
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAE9B,OAAO,EAAa,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAQ,OAAO,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,MAAM,OAAO,UAAU;IACb,OAAO,CAAgB;IACvB,OAAO,GAAqB,IAAI,GAAG,EAAE,CAAC;IACtC,gBAAgB,GAAwB,IAAI,GAAG,EAAE,CAAC;IAE1D,YAAY,UAAkC,EAAE;QAC9C,IAAI,CAAC,OAAO,GAAG;YACb,KAAK,EAAE,MAAM;YACb,YAAY,EAAE,IAAI;YAClB,gBAAgB,EAAE,IAAI;YACtB,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;YACrC,UAAU,EAAE,CAAC;YACb,iBAAiB,EAAE,KAAK;YACxB,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW;QACnC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW;QACnC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,SAAiB,EAAE,OAAe,EAAE,GAAG,IAAW;QACrD,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACpD,MAAM,WAAW,GAAG,QAAQ,KAAK,IAAI;gBACnC,CAAC,CAAC,GAAG,OAAO,KAAK,QAAQ,KAAK;gBAC9B,CAAC,CAAC,OAAO,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,UAAU,WAAW,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,SAAiB;QACpC,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YACnC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,SAAiB;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACxC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,GAAW,EAAE,KAAU;QAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,aAAa,CAAC,GAAW;QACvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAA4B;QAChC,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,sBAAsB;QACtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,oBAAoB;QACpB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,SAAS,CAAC,KAAe,EAAE,MAAW,EAAE,KAAc;QACpD,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAChD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,OAAO,CAAC,OAAe,EAAE,IAAc,EAAE,QAAiB;QACxD,MAAM,gBAAgB,GAAG,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,OAAO,GAAG,QAAQ;YACtB,CAAC,CAAC,qBAAqB,gBAAgB,KAAK,QAAQ,KAAK;YACzD,CAAC,CAAC,sBAAsB,gBAAgB,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAED,WAAW,CACT,UAAkB,EAClB,OAAgB,EAChB,QAAgB,EAChB,OAAa;QAEb,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QAEhD,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,MAAM,KAAK,UAAU,KAAK,QAAQ,KAAK,CAAC,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,KAAK,UAAU,KAAK,QAAQ,KAAK,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,CACP,OAAgB,EAChB,YAAoB,EACpB,QAAgB,EAChB,OAAa;QAEb,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QAEhD,MAAM,OAAO,GAAG,OAAO,MAAM,SAAS,YAAY,WAAW,QAAQ,IAAI,CAAC;QAE1E,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QAED,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,IAAW;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAE3D,oBAAoB;QACpB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEtC,+BAA+B;QAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACtC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,KAAe,EAAE,OAAe,EAAE,IAAW;QAClE,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAEvC,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;iBAClD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;iBACxC,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAC7B,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAC5D,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAEO,eAAe,CAAC,KAAe,EAAE,QAAgB;QACvD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QAED,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,OAAO;gBACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,MAAM;gBACT,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,MAAM;gBACT,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpC,MAAM;YACR,KAAK,OAAO;gBACV,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnC,MAAM;YACR;gBACE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,QAAgB;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEzC,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC,CAAC;YAExD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACtD,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBACzC,OAAO;YACT,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAEzC,MAAM,YAAY,GAAG,GAAG,WAAW,IAAI,UAAU,EAAE,CAAC;YACpD,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;YACb,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,MAAM,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,GAAG,GAAG,WAAW,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;gBACb,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,WAAW,EAAE,GAAG,WAAW,IAAI,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;YACb,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,YAAsB;QACtC,MAAM,MAAM,GAA6B;YACvC,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;SACT,CAAC;QAEF,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,aAAa,CAAC,OAA+B;QAC3C,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;IACjD,CAAC;IAED,UAAU;QACR,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,UAAU,YAAY,CAAC,UAAkC,EAAE;IAC/D,MAAM,cAAc,GAA2B;QAC7C,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;QAC3C,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;QAClC,gBAAgB,EAAE,KAAK;QACvB,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK;QAClC,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI;KACtC,CAAC;IAEF,OAAO,IAAI,UAAU,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,UAAkC,EAAE;IAEpC,OAAO,IAAI,UAAU,CAAC;QACpB,GAAG,OAAO;QACV,OAAO;QACP,YAAY,EAAE,KAAK,EAAE,yCAAyC;QAC9D,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,MAAkB,EAClB,SAAiB,EACjB,EAAwB;IAExB,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,EAAE,EAAE,CAAC;IAEpB,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;YACzB,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,SAAS,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,SAAS,EAAE,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC"}
@@ -0,0 +1,101 @@
1
+ import { CompilationOptions, CompilationResult, Logger } from "../types.js";
2
+ export declare class FiveCompilerWasm {
3
+ private compiler;
4
+ private logger;
5
+ private initialized;
6
+ constructor(logger: Logger);
7
+ initialize(): Promise<void>;
8
+ /**
9
+ * Compile Five DSL source code from string (SDK compatibility)
10
+ */
11
+ compile(source: string, options?: any): Promise<any>;
12
+ /**
13
+ * Compile multiple modules (main + dependencies)
14
+ */
15
+ compileModules(mainSource: string, modules: Array<{
16
+ name: string;
17
+ source: string;
18
+ }>, options?: any, mainFileName?: string): Promise<any>;
19
+ /**
20
+ * Compile Five DSL source code from file (CLI compatibility)
21
+ */
22
+ compileFile(options: CompilationOptions): Promise<CompilationResult>;
23
+ /**
24
+ * Generate ABI from DSL source using real WASM compiler
25
+ */
26
+ generateABI(sourceCode: string): Promise<any>;
27
+ /**
28
+ * Validate DSL syntax using real WASM compiler
29
+ */
30
+ validateSource(sourceCode: string): Promise<{
31
+ valid: boolean;
32
+ errors: string[];
33
+ warnings: string[];
34
+ }>;
35
+ /**
36
+ * Optimize bytecode using real WASM optimizer
37
+ */
38
+ optimizeBytecode(bytecode: Uint8Array): Promise<Uint8Array>;
39
+ /**
40
+ * Analyze bytecode using real WASM analyzer
41
+ */
42
+ analyzeBytecode(bytecode: Uint8Array): Promise<any>;
43
+ /**
44
+ * Get detailed instruction analysis at specific offset
45
+ */
46
+ analyzeInstructionAt(bytecode: Uint8Array, offset: number): Promise<any>;
47
+ /**
48
+ * Get bytecode summary statistics
49
+ */
50
+ getBytecodeStats(bytecode: Uint8Array): Promise<any>;
51
+ /**
52
+ * Extract account definitions from DSL source
53
+ */
54
+ extractAccountDefinitions(sourceCode: string): Promise<any>;
55
+ /**
56
+ * Extract function signatures from DSL source
57
+ */
58
+ extractFunctionSignatures(sourceCode: string): Promise<any>;
59
+ /**
60
+ * Validate account constraints
61
+ */
62
+ validateAccountConstraints(sourceCode: string, functionName: string, accounts: any[]): Promise<any>;
63
+ /**
64
+ * Get compiler version and capabilities from real WASM
65
+ */
66
+ getCompilerInfo(): {
67
+ version: string;
68
+ features: string[];
69
+ };
70
+ /**
71
+ * Create a standardized compiler error
72
+ */
73
+ private createCompilerError;
74
+ private extractAbi;
75
+ /**
76
+ * Get opcode usage statistics from compilation
77
+ */
78
+ getOpcodeUsage(sourceCode: string): Promise<any>;
79
+ /**
80
+ * Get comprehensive opcode analysis showing used vs unused opcodes
81
+ */
82
+ getOpcodeAnalysis(sourceCode: string): Promise<any>;
83
+ /**
84
+ * Discover modules starting from entry point (tooling support)
85
+ */
86
+ discoverModules(entryPoint: string): Promise<string[]>;
87
+ /**
88
+ * Compile multi-file project with automatic discovery
89
+ */
90
+ compileWithDiscovery(entryPoint: string, options?: any): Promise<any>;
91
+ /**
92
+ * Compile multi-file project with explicit module list (paths)
93
+ */
94
+ compileModulesExplicit(moduleFiles: string[], entryPoint: string, options?: any): Promise<any>;
95
+ private extractMetrics;
96
+ /**
97
+ * Check if compiler is ready
98
+ */
99
+ isReady(): boolean;
100
+ }
101
+ //# sourceMappingURL=compiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/wasm/compiler.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EAEP,MAAM,aAAa,CAAC;AAgBrB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,MAAM;IAIpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiFjC;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAqH1D;;OAEG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,EAChD,OAAO,CAAC,EAAE,GAAG,EACb,YAAY,GAAE,MAAkB,GAC/B,OAAO,CAAC,GAAG,CAAC;IA4Ef;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+Q1E;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAanD;;OAEG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAgBpE;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAgBjE;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAiBzD;;OAEG;IACG,oBAAoB,CACxB,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,GAAG,CAAC;IAmBf;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAa1D;;OAEG;IACG,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAgBjE;;OAEG;IACG,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAgBjE;;OAEG;IACG,0BAA0B,CAC9B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,GAAG,EAAE,GACd,OAAO,CAAC,GAAG,CAAC;IAqBf;;OAEG;IACH,eAAe,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE;IAgB1D;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,UAAU;IAiClB;;OAEG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAgBtD;;OAEG;IACG,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAgBzD;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAe5D;;OAEG;IACG,oBAAoB,CACxB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,GAAG,CAAC;IAyEf;;OAEG;IACG,sBAAsB,CAC1B,WAAW,EAAE,MAAM,EAAE,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,GAAG,CAAC;IAuEf,OAAO,CAAC,cAAc;IAsCtB;;OAEG;IACH,OAAO,IAAI,OAAO;CAGnB"}