@solidxai/solidctl 0.1.26 → 0.1.27-beta.0

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/README.md CHANGED
@@ -173,6 +173,31 @@ npx @solidxai/solidctl info
173
173
 
174
174
  ---
175
175
 
176
+ ### `start:dev`
177
+
178
+ Starts both consuming-project dev servers in one supervised terminal session with merged logs and keyboard shortcuts.
179
+
180
+ ```bash
181
+ npx @solidxai/solidctl start:dev
182
+ ```
183
+
184
+ Keyboard shortcuts in interactive terminals:
185
+ - `a` restart `solid-api`
186
+ - `u` restart `solid-ui`
187
+ - `r` restart both
188
+ - `c` clear the terminal
189
+ - `q` stop both and quit
190
+
191
+ Use plain merged logs without the control pane:
192
+
193
+ ```bash
194
+ npx @solidxai/solidctl start:dev --plain
195
+ ```
196
+
197
+ This command validates that both `solid-api/package.json` and `solid-ui/package.json` define a `solidx:dev` script before starting either process.
198
+
199
+ ---
200
+
176
201
  ## Project structure
177
202
 
178
203
  A project created by `solidctl create-app` follows this layout:
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.registerCreateAppCommand = registerCreateAppCommand;
7
+ const lodash_1 = require("lodash");
7
8
  const chalk_1 = __importDefault(require("chalk"));
8
9
  const inquirer_1 = __importDefault(require("inquirer"));
9
10
  const ora_1 = __importDefault(require("ora"));
@@ -11,12 +12,6 @@ const fs_extra_1 = __importDefault(require("fs-extra"));
11
12
  const path_1 = __importDefault(require("path"));
12
13
  const setup_questions_1 = require("./setup-questions");
13
14
  const helpers_1 = require("./helpers");
14
- function kebabCase(str) {
15
- return str
16
- .replace(/([a-z])([A-Z])/g, '$1-$2')
17
- .replace(/[\s_]+/g, '-')
18
- .toLowerCase();
19
- }
20
15
  function buildAnswersFromOptions(options) {
21
16
  function validatePort(flag, value) {
22
17
  const n = Number(value);
@@ -99,7 +94,7 @@ function registerCreateAppCommand(program) {
99
94
  process.exit(1);
100
95
  }
101
96
  }
102
- const projectName = kebabCase(answers.projectName.trim());
97
+ const projectName = (0, lodash_1.kebabCase)(answers.projectName.trim());
103
98
  const targetPath = path_1.default.join(process.cwd(), projectName);
104
99
  if (fs_extra_1.default.existsSync(targetPath)) {
105
100
  console.log(chalk_1.default.red(`Error: Directory ${projectName} already exists.`));
@@ -1 +1 @@
1
- {"version":3,"file":"create-app.command.js","sourceRoot":"","sources":["../../../src/commands/create-app/create-app.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-app.command.js","sourceRoot":"","sources":["../../../src/commands/create-app/create-app.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerStartCommand(program: Command): void;
@@ -0,0 +1,327 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerStartCommand = registerStartCommand;
7
+ const child_process_1 = require("child_process");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const readline_1 = __importDefault(require("readline"));
11
+ const helper_1 = require("../helper");
12
+ class StartSupervisor {
13
+ projectRoot;
14
+ serviceConfigs;
15
+ serviceStates;
16
+ isInteractive;
17
+ npmCommand;
18
+ shuttingDown = false;
19
+ exitCode = 0;
20
+ stdinWasRaw = false;
21
+ footerInterval = null;
22
+ constructor(projectRoot, options) {
23
+ this.projectRoot = projectRoot;
24
+ this.isInteractive = Boolean(process.stdout.isTTY && process.stdin.isTTY && !options.plain);
25
+ this.npmCommand = process.platform === 'win32' ? 'npm.cmd' : 'npm';
26
+ this.serviceConfigs = {
27
+ api: {
28
+ cwd: path_1.default.join(projectRoot, 'solid-api'),
29
+ label: 'api',
30
+ color: chalk_1.default.cyan,
31
+ },
32
+ ui: {
33
+ cwd: path_1.default.join(projectRoot, 'solid-ui'),
34
+ label: 'ui',
35
+ color: chalk_1.default.magenta,
36
+ },
37
+ };
38
+ this.serviceStates = {
39
+ api: this.createInitialState(),
40
+ ui: this.createInitialState(),
41
+ };
42
+ }
43
+ async start() {
44
+ this.attachSignalHandlers();
45
+ this.attachKeyboardControls();
46
+ this.printStatus('Starting SolidX dev processes');
47
+ this.spawnService('api');
48
+ this.spawnService('ui');
49
+ this.renderFooter();
50
+ await new Promise((resolve) => {
51
+ const poll = setInterval(() => {
52
+ if (!this.hasRunningChildren()) {
53
+ clearInterval(poll);
54
+ this.cleanupTerminal();
55
+ resolve();
56
+ }
57
+ }, 100);
58
+ });
59
+ process.exit(this.exitCode);
60
+ }
61
+ createInitialState() {
62
+ return {
63
+ child: null,
64
+ restartRequested: false,
65
+ stoppingForShutdown: false,
66
+ outputBuffer: '',
67
+ startedAt: null,
68
+ };
69
+ }
70
+ spawnService(serviceName) {
71
+ const config = this.serviceConfigs[serviceName];
72
+ const state = this.serviceStates[serviceName];
73
+ state.restartRequested = false;
74
+ state.stoppingForShutdown = false;
75
+ state.startedAt = Date.now();
76
+ const child = (0, child_process_1.spawn)(this.npmCommand, ['run', 'solidx:dev'], {
77
+ cwd: config.cwd,
78
+ env: process.env,
79
+ stdio: ['ignore', 'pipe', 'pipe'],
80
+ shell: false,
81
+ });
82
+ state.child = child;
83
+ this.printStatus(`Started ${config.label}`);
84
+ child.stdout?.on('data', (chunk) => {
85
+ this.handleChunk(serviceName, String(chunk), false);
86
+ });
87
+ child.stderr?.on('data', (chunk) => {
88
+ this.handleChunk(serviceName, String(chunk), true);
89
+ });
90
+ child.on('error', (error) => {
91
+ this.printLog(serviceName, `Failed to start: ${error.message}`, true);
92
+ this.handleUnexpectedExit(serviceName, 1);
93
+ });
94
+ child.on('exit', (code, signal) => {
95
+ this.flushBuffer(serviceName);
96
+ state.child = null;
97
+ if (this.shuttingDown || state.stoppingForShutdown) {
98
+ this.printStatus(`${config.label} stopped`);
99
+ return;
100
+ }
101
+ if (state.restartRequested) {
102
+ this.printStatus(`Restarting ${config.label}`);
103
+ this.spawnService(serviceName);
104
+ return;
105
+ }
106
+ const reason = signal ? `signal ${signal}` : `code ${code ?? 0}`;
107
+ this.printLog(serviceName, `Exited unexpectedly with ${reason}`, true);
108
+ this.handleUnexpectedExit(serviceName, typeof code === 'number' ? code : 1);
109
+ });
110
+ }
111
+ handleChunk(serviceName, chunk, isError) {
112
+ const state = this.serviceStates[serviceName];
113
+ state.outputBuffer += chunk;
114
+ const lines = state.outputBuffer.split(/\r?\n/);
115
+ state.outputBuffer = lines.pop() ?? '';
116
+ for (const line of lines) {
117
+ this.printLog(serviceName, line, isError);
118
+ }
119
+ }
120
+ flushBuffer(serviceName) {
121
+ const state = this.serviceStates[serviceName];
122
+ if (!state.outputBuffer) {
123
+ return;
124
+ }
125
+ this.printLog(serviceName, state.outputBuffer, false);
126
+ state.outputBuffer = '';
127
+ }
128
+ printLog(serviceName, message, isError) {
129
+ const config = this.serviceConfigs[serviceName];
130
+ const prefix = config.color(`[${config.label}]`);
131
+ const line = `${prefix} ${message}`;
132
+ this.writeWithFooter(line, isError ? process.stderr : process.stdout);
133
+ }
134
+ printStatus(message) {
135
+ this.writeWithFooter(chalk_1.default.dim(`[solidctl] ${message}`), process.stdout);
136
+ }
137
+ writeWithFooter(line, stream) {
138
+ if (!this.isInteractive) {
139
+ stream.write(`${line}\n`);
140
+ return;
141
+ }
142
+ readline_1.default.clearLine(process.stdout, 0);
143
+ readline_1.default.cursorTo(process.stdout, 0);
144
+ stream.write(`${line}\n`);
145
+ this.renderFooter();
146
+ }
147
+ renderFooter() {
148
+ if (!this.isInteractive) {
149
+ return;
150
+ }
151
+ const footer = [
152
+ chalk_1.default.bold('Controls'),
153
+ `project:${this.projectRoot}`,
154
+ `api:${this.getServiceStatusLabel('api')} ${this.getServiceUptime('api')}`,
155
+ `ui:${this.getServiceStatusLabel('ui')} ${this.getServiceUptime('ui')}`,
156
+ 'a restart API',
157
+ 'u restart UI',
158
+ 'r restart both',
159
+ 'c clear',
160
+ 'q quit',
161
+ ].join(chalk_1.default.dim(' | '));
162
+ readline_1.default.clearLine(process.stdout, 0);
163
+ readline_1.default.cursorTo(process.stdout, 0);
164
+ process.stdout.write(chalk_1.default.inverse(` ${footer} `));
165
+ }
166
+ getServiceStatusLabel(serviceName) {
167
+ const state = this.serviceStates[serviceName];
168
+ const config = this.serviceConfigs[serviceName];
169
+ if (state.child) {
170
+ return config.color('running');
171
+ }
172
+ if (state.restartRequested) {
173
+ return chalk_1.default.yellow('restarting');
174
+ }
175
+ if (this.shuttingDown || state.stoppingForShutdown) {
176
+ return chalk_1.default.gray('stopping');
177
+ }
178
+ return chalk_1.default.red('stopped');
179
+ }
180
+ getServiceUptime(serviceName) {
181
+ const state = this.serviceStates[serviceName];
182
+ if (!state.child || !state.startedAt) {
183
+ return chalk_1.default.gray('00:00:00');
184
+ }
185
+ return chalk_1.default.green(this.formatDuration(Date.now() - state.startedAt));
186
+ }
187
+ formatDuration(durationMs) {
188
+ const totalSeconds = Math.max(0, Math.floor(durationMs / 1000));
189
+ const hours = Math.floor(totalSeconds / 3600);
190
+ const minutes = Math.floor((totalSeconds % 3600) / 60);
191
+ const seconds = totalSeconds % 60;
192
+ return [hours, minutes, seconds].map((value) => String(value).padStart(2, '0')).join(':');
193
+ }
194
+ attachSignalHandlers() {
195
+ process.on('SIGINT', () => {
196
+ this.shutdown(0);
197
+ });
198
+ process.on('SIGTERM', () => {
199
+ this.shutdown(0);
200
+ });
201
+ }
202
+ attachKeyboardControls() {
203
+ if (!this.isInteractive) {
204
+ return;
205
+ }
206
+ readline_1.default.emitKeypressEvents(process.stdin);
207
+ this.stdinWasRaw = Boolean(process.stdin.isRaw);
208
+ process.stdin.setRawMode?.(true);
209
+ process.stdin.resume();
210
+ this.footerInterval = setInterval(() => {
211
+ this.renderFooter();
212
+ }, 1000);
213
+ process.stdin.on('keypress', (_str, key) => {
214
+ if (key.ctrl && key.name === 'c') {
215
+ this.shutdown(0);
216
+ return;
217
+ }
218
+ switch (key.name) {
219
+ case 'a':
220
+ this.restartService('api');
221
+ break;
222
+ case 'u':
223
+ this.restartService('ui');
224
+ break;
225
+ case 'r':
226
+ this.restartService('api');
227
+ this.restartService('ui');
228
+ break;
229
+ case 'c':
230
+ console.clear();
231
+ this.renderFooter();
232
+ break;
233
+ case 'q':
234
+ this.shutdown(0);
235
+ break;
236
+ default:
237
+ break;
238
+ }
239
+ });
240
+ }
241
+ restartService(serviceName) {
242
+ const state = this.serviceStates[serviceName];
243
+ if (!state.child) {
244
+ this.printStatus(`${this.serviceConfigs[serviceName].label} is not running, starting it now`);
245
+ this.spawnService(serviceName);
246
+ this.renderFooter();
247
+ return;
248
+ }
249
+ state.restartRequested = true;
250
+ this.printStatus(`Stopping ${this.serviceConfigs[serviceName].label} for restart`);
251
+ this.stopChild(serviceName);
252
+ }
253
+ stopChild(serviceName) {
254
+ const state = this.serviceStates[serviceName];
255
+ if (!state.child) {
256
+ return;
257
+ }
258
+ state.child.kill('SIGTERM');
259
+ }
260
+ handleUnexpectedExit(serviceName, code) {
261
+ if (this.shuttingDown) {
262
+ return;
263
+ }
264
+ this.exitCode = code === 0 ? 1 : code;
265
+ this.shuttingDown = true;
266
+ for (const otherServiceName of Object.keys(this.serviceStates)) {
267
+ if (otherServiceName === serviceName) {
268
+ continue;
269
+ }
270
+ const otherState = this.serviceStates[otherServiceName];
271
+ if (otherState.child) {
272
+ otherState.stoppingForShutdown = true;
273
+ this.stopChild(otherServiceName);
274
+ }
275
+ }
276
+ this.renderFooter();
277
+ }
278
+ shutdown(code) {
279
+ if (this.shuttingDown) {
280
+ return;
281
+ }
282
+ this.exitCode = code;
283
+ this.shuttingDown = true;
284
+ this.printStatus('Shutting down');
285
+ for (const serviceName of Object.keys(this.serviceStates)) {
286
+ const state = this.serviceStates[serviceName];
287
+ state.stoppingForShutdown = true;
288
+ state.restartRequested = false;
289
+ this.stopChild(serviceName);
290
+ }
291
+ this.renderFooter();
292
+ }
293
+ hasRunningChildren() {
294
+ return Object.keys(this.serviceStates).some((serviceName) => {
295
+ return this.serviceStates[serviceName].child !== null;
296
+ });
297
+ }
298
+ cleanupTerminal() {
299
+ if (!this.isInteractive) {
300
+ return;
301
+ }
302
+ readline_1.default.clearLine(process.stdout, 0);
303
+ readline_1.default.cursorTo(process.stdout, 0);
304
+ if (this.footerInterval) {
305
+ clearInterval(this.footerInterval);
306
+ this.footerInterval = null;
307
+ }
308
+ if (!this.stdinWasRaw) {
309
+ process.stdin.setRawMode?.(false);
310
+ }
311
+ process.stdout.write('\n');
312
+ }
313
+ }
314
+ function registerStartCommand(program) {
315
+ program
316
+ .command('start:dev')
317
+ .description('Start solid-api and solid-ui dev processes in a single supervisor')
318
+ .option('--plain', 'Disable interactive controls and print merged logs only')
319
+ .action(async (options) => {
320
+ (0, helper_1.validateProjectRoot)();
321
+ (0, helper_1.validateProjectScript)('solid-api', 'solidx:dev');
322
+ (0, helper_1.validateProjectScript)('solid-ui', 'solidx:dev');
323
+ const supervisor = new StartSupervisor(process.cwd(), options);
324
+ await supervisor.start();
325
+ });
326
+ }
327
+ //# sourceMappingURL=start.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.command.js","sourceRoot":"","sources":["../../src/commands/start.command.ts"],"names":[],"mappings":"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"}
package/dist/helper.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export declare function validateProjectRoot(): void;
2
+ export declare function validateProjectScript(projectName: 'solid-api' | 'solid-ui', scriptName: string): void;
package/dist/helper.js CHANGED
@@ -1,19 +1,29 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.validateProjectRoot = validateProjectRoot;
7
+ exports.validateProjectScript = validateProjectScript;
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const requiredProjectFiles = ['solid-api/package.json', 'solid-ui/package.json'];
4
11
  function validateProjectRoot() {
5
- const fs = require('fs');
6
- const path = require('path');
7
- const requiredFiles = [
8
- 'solid-api/package.json',
9
- 'solid-ui/package.json',
10
- ];
11
12
  const cwd = process.cwd();
12
- for (const file of requiredFiles) {
13
- if (!fs.existsSync(path.join(cwd, file))) {
13
+ for (const file of requiredProjectFiles) {
14
+ if (!fs_1.default.existsSync(path_1.default.join(cwd, file))) {
14
15
  console.error(`Ensure you are running this command from the SolidX project root. Missing file: ${file}`);
15
16
  process.exit(1);
16
17
  }
17
18
  }
18
19
  }
20
+ function validateProjectScript(projectName, scriptName) {
21
+ validateProjectRoot();
22
+ const packageJsonPath = path_1.default.join(process.cwd(), projectName, 'package.json');
23
+ const packageJson = JSON.parse(fs_1.default.readFileSync(packageJsonPath, 'utf8'));
24
+ if (!packageJson.scripts?.[scriptName]) {
25
+ console.error(`Ensure ${projectName}/package.json defines the "${scriptName}" script before running this command.`);
26
+ process.exit(1);
27
+ }
28
+ }
19
29
  //# sourceMappingURL=helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":";;AAEA,kDAgBC;AAhBD,SAAgB,mBAAmB;IACjC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7B,MAAM,aAAa,GAAG;QACpB,wBAAwB;QACxB,uBAAuB;KACxB,CAAC;IAEA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,mFAAmF,IAAI,EAAE,CAAC,CAAC;YACzG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":";;;;;AAKA,kDASC;AAED,sDAcC;AA9BD,4CAAoB;AACpB,gDAAwB;AAExB,MAAM,oBAAoB,GAAG,CAAC,wBAAwB,EAAE,uBAAuB,CAAU,CAAC;AAE1F,SAAgB,mBAAmB;IACjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE,CAAC;QACxC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,mFAAmF,IAAI,EAAE,CAAC,CAAC;YACzG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB,CAAC,WAAqC,EAAE,UAAkB;IAC7F,mBAAmB,EAAE,CAAC;IAEtB,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAEtE,CAAC;IAEF,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,CACX,UAAU,WAAW,8BAA8B,UAAU,uCAAuC,CACrG,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
package/dist/main.js CHANGED
@@ -16,6 +16,7 @@ const legacy_migrate_command_1 = require("./commands/legacy-migrate.command");
16
16
  const generate_command_1 = require("./commands/generate.command");
17
17
  const mcp_command_1 = require("./commands/mcp.command");
18
18
  const agent_command_1 = require("./commands/agent.command");
19
+ const start_command_1 = require("./commands/start.command");
19
20
  async function bootstrap() {
20
21
  const appContext = await core_1.NestFactory.createApplicationContext(app_module_1.AppModule, { logger: false });
21
22
  const program = new commander_1.Command();
@@ -35,6 +36,7 @@ async function bootstrap() {
35
36
  (0, generate_command_1.registerGenerateCommand)(program);
36
37
  (0, mcp_command_1.registerMcpCommand)(program);
37
38
  (0, agent_command_1.registerAgentCommand)(program);
39
+ (0, start_command_1.registerStartCommand)(program);
38
40
  await program.parseAsync(process.argv);
39
41
  await appContext.close();
40
42
  }
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;AACA,uCAA2C;AAC3C,yCAAoC;AACpC,6CAAyC;AACzC,4EAA+E;AAC/E,4DAAgE;AAChE,gEAAoE;AACpE,0DAA8D;AAC9D,0DAA8D;AAC9D,0DAA8D;AAC9D,iFAAoF;AACpF,gEAAoE;AACpE,8EAAiF;AAEjF,kEAAsE;AACtE,wDAA4D;AAC5D,4DAAgE;AAEhE,KAAK,UAAU,SAAS;IACtB,MAAM,UAAU,GAAG,MAAM,kBAAW,CAAC,wBAAwB,CAC3D,sBAAS,EACT,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,UAAU,CAAC;SAChB,WAAW,CAAC,eAAe,CAAC;SAC5B,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,IAAA,wCAAsB,EAAC,OAAO,CAAC,CAAC;IAChC,IAAA,oCAAoB,EAAC,OAAO,CAAC,CAAC;IAC9B,IAAA,mDAA2B,EAAC,OAAO,CAAC,CAAC;IACrC,IAAA,kCAAmB,EAAC,OAAO,CAAC,CAAC;IAC7B,IAAA,kCAAmB,EAAC,OAAO,CAAC,CAAC;IAC7B,IAAA,kCAAmB,EAAC,OAAO,CAAC,CAAC;IAC7B,IAAA,6CAAwB,EAAC,OAAO,CAAC,CAAC;IAClC,IAAA,wCAAsB,EAAC,OAAO,CAAC,CAAC;IAChC,IAAA,qDAA4B,EAAC,OAAO,CAAC,CAAC;IACtC,IAAA,0CAAuB,EAAC,OAAO,CAAC,CAAC;IACjC,IAAA,gCAAkB,EAAC,OAAO,CAAC,CAAC;IAC5B,IAAA,oCAAoB,EAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;AACA,uCAA2C;AAC3C,yCAAoC;AACpC,6CAAyC;AACzC,4EAA+E;AAC/E,4DAAgE;AAChE,gEAAoE;AACpE,0DAA8D;AAC9D,0DAA8D;AAC9D,0DAA8D;AAC9D,iFAAoF;AACpF,gEAAoE;AACpE,8EAAiF;AACjF,kEAAsE;AACtE,wDAA4D;AAC5D,4DAAgE;AAChE,4DAAgE;AAEhE,KAAK,UAAU,SAAS;IACtB,MAAM,UAAU,GAAG,MAAM,kBAAW,CAAC,wBAAwB,CAC3D,sBAAS,EACT,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,UAAU,CAAC;SAChB,WAAW,CAAC,eAAe,CAAC;SAC5B,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,IAAA,wCAAsB,EAAC,OAAO,CAAC,CAAC;IAChC,IAAA,oCAAoB,EAAC,OAAO,CAAC,CAAC;IAC9B,IAAA,mDAA2B,EAAC,OAAO,CAAC,CAAC;IACrC,IAAA,kCAAmB,EAAC,OAAO,CAAC,CAAC;IAC7B,IAAA,kCAAmB,EAAC,OAAO,CAAC,CAAC;IAC7B,IAAA,kCAAmB,EAAC,OAAO,CAAC,CAAC;IAC7B,IAAA,6CAAwB,EAAC,OAAO,CAAC,CAAC;IAClC,IAAA,wCAAsB,EAAC,OAAO,CAAC,CAAC;IAChC,IAAA,qDAA4B,EAAC,OAAO,CAAC,CAAC;IACtC,IAAA,0CAAuB,EAAC,OAAO,CAAC,CAAC;IACjC,IAAA,gCAAkB,EAAC,OAAO,CAAC,CAAC;IAC5B,IAAA,oCAAoB,EAAC,OAAO,CAAC,CAAC;IAC9B,IAAA,oCAAoB,EAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,EAAE,CAAC"}