@husar.ai/cli 0.4.2 → 0.4.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.
@@ -1,170 +1,163 @@
1
1
  import { spawn } from 'node:child_process';
2
2
  import { promises as fs } from 'node:fs';
3
3
  import { join, resolve } from 'node:path';
4
- import * as readline from 'node:readline';
5
4
  import { getCloudAuth } from '../auth/config.js';
6
5
  import { startCloudLoginFlow, startPanelLoginFlow } from '../auth/login.js';
7
6
  import { getProjects, verifyAccessToken } from '../auth/api.js';
7
+ import { log, spinner, select, input, successBox, errorBox, nextSteps, header, theme, chalk } from '../ui.js';
8
8
  export async function runCreateCommand(options) {
9
- console.log('\nšŸš€ Husar.ai Project Creator\n');
10
- const connectionMethod = await promptConnectionMethod();
9
+ header('Step 1: Connect to CMS');
10
+ const connectionMethod = await select('How do you want to connect?', [
11
+ {
12
+ name: 'cloud',
13
+ message: 'Login to husar.ai',
14
+ hint: 'Recommended - select from your projects',
15
+ },
16
+ {
17
+ name: 'manual',
18
+ message: 'Enter URL manually',
19
+ hint: 'For self-hosted or custom instances',
20
+ },
21
+ ]);
11
22
  let panelHost;
12
23
  if (connectionMethod === 'manual') {
13
- panelHost = await promptManualUrl();
24
+ panelHost = await input('Enter your CMS panel URL', 'https://');
25
+ if (!panelHost.startsWith('http://') && !panelHost.startsWith('https://')) {
26
+ errorBox('URL must start with http:// or https://');
27
+ process.exit(1);
28
+ }
14
29
  }
15
30
  else {
16
31
  const cloudAuth = await ensureCloudLogin();
17
32
  if (!cloudAuth) {
18
- console.error('\nāŒ Cloud authentication failed. Please try again.');
33
+ errorBox('Cloud authentication failed. Please try again.');
19
34
  process.exit(1);
20
35
  }
21
- console.log('\nšŸ“¦ Fetching your projects...\n');
36
+ const spin = spinner('Fetching your projects...');
22
37
  const projects = await getProjects(cloudAuth.accessToken);
38
+ spin.stop();
23
39
  if (projects.length === 0) {
24
- console.log('āŒ No projects found in your account.');
25
- console.log(' Create a project at https://admin.husar.ai first.\n');
40
+ errorBox('No projects found in your account.\n\n' + `Create a project at ${theme.link('https://admin.husar.ai')} first.`, 'No Projects');
26
41
  process.exit(1);
27
42
  }
28
43
  const selectedProject = await promptSelectProject(projects);
29
44
  panelHost = selectedProject.adminURL;
30
- console.log(`\nšŸ“Œ Selected: ${selectedProject.name}`);
45
+ log.done(`Selected: ${theme.info(selectedProject.name)}`);
31
46
  }
32
- console.log('\nšŸ” Opening browser for CMS authentication...');
33
- console.log(" You'll need your SUPERADMIN credentials (from the welcome email)\n");
47
+ header('Step 2: CMS Authentication');
48
+ log.info('Opening browser for CMS authentication...');
49
+ log.dim("You'll need your SUPERADMIN credentials (from the welcome email)");
50
+ log.blank();
34
51
  const panelAuth = await startPanelLoginFlow(panelHost);
35
52
  if (!panelAuth.success || !panelAuth.project) {
36
- console.error('\nāŒ CMS authentication failed:', panelAuth.error ?? 'Unknown error');
53
+ errorBox(panelAuth.error ?? 'Unknown error', 'CMS Authentication Failed');
37
54
  process.exit(1);
38
55
  }
39
56
  const project = panelAuth.project;
40
- console.log(`\nāœ… Connected to: ${project.projectName}`);
41
- console.log(` Host: ${project.host}\n`);
42
- const projectName = options.projectName || (await promptProjectName(project.projectName));
57
+ log.success(`Connected to: ${theme.info(project.projectName)}`);
58
+ log.dim(`Host: ${project.host}`);
59
+ header('Step 3: Project Setup');
60
+ const defaultName = project.projectName.replace(/[^a-zA-Z0-9-_]/g, '-').toLowerCase();
61
+ const projectName = options.projectName || (await input('Project directory name', defaultName));
43
62
  if (!projectName) {
44
- console.error('āŒ Project name is required.');
63
+ errorBox('Project name is required.');
45
64
  process.exit(1);
46
65
  }
47
66
  const projectPath = resolve(process.cwd(), projectName);
48
- console.log(`\nšŸ“¦ Creating ${options.framework === 'nextjs' ? 'Next.js' : 'Vite + React'} project...\n`);
49
- const frameworkSuccess = await runFrameworkCli(options.framework, projectName);
50
- if (!frameworkSuccess) {
51
- console.error('\nāŒ Framework CLI failed. Please check the output above.');
52
- process.exit(1);
67
+ const framework = options.framework ||
68
+ (await select('Which template would you like?', [
69
+ {
70
+ name: 'nextjs',
71
+ message: 'Next.js',
72
+ hint: 'Recommended - Full-stack React with SSR',
73
+ },
74
+ {
75
+ name: 'vite',
76
+ message: 'Vite + React',
77
+ hint: 'Fast build tool with React & TypeScript',
78
+ },
79
+ {
80
+ name: 'clean',
81
+ message: 'Clean (no framework)',
82
+ hint: 'Just npm init - bring your own setup',
83
+ },
84
+ ]));
85
+ header('Step 4: Creating Project');
86
+ if (framework === 'clean') {
87
+ const spin = spinner('Initializing clean project...');
88
+ const initSuccess = await initCleanProject(projectName);
89
+ if (!initSuccess) {
90
+ spin.fail('Project initialization failed');
91
+ process.exit(1);
92
+ }
93
+ spin.succeed('Project initialized');
94
+ }
95
+ else {
96
+ const frameworkLabel = framework === 'nextjs' ? 'Next.js' : 'Vite + React';
97
+ log.step(`Creating ${frameworkLabel} project...`);
98
+ log.blank();
99
+ const frameworkSuccess = await runFrameworkCli(framework, projectName);
100
+ if (!frameworkSuccess) {
101
+ errorBox('Framework CLI failed. Please check the output above.');
102
+ process.exit(1);
103
+ }
53
104
  }
54
- console.log('\nāš™ļø Adding Husar configuration...\n');
55
- await addHusarConfig(projectPath, project, options.framework);
105
+ header('Step 5: Configuring Husar');
106
+ const configSpin = spinner('Adding configuration...');
107
+ await addHusarConfig(projectPath, project, framework);
108
+ configSpin.succeed('Configuration added');
109
+ log.substep('husar.json - CMS configuration');
110
+ log.substep('.env.local - Credentials (keep secret!)');
111
+ log.substep('opencode.jsonc - MCP integration');
112
+ log.substep('.opencode/command/husar.md - MCP docs');
56
113
  if (!options.skipInstall) {
57
- console.log('\nšŸ“„ Installing Husar packages...\n');
114
+ log.blank();
115
+ const installSpin = spinner('Installing Husar packages...');
58
116
  await installHusarPackages(projectPath);
117
+ installSpin.succeed('Packages installed');
118
+ log.substep('@husar.ai/ssr');
119
+ log.substep('@husar.ai/render');
59
120
  }
60
- console.log('\nšŸ”§ Generating CMS client...\n');
61
- await generateCmsClient(projectPath, options.framework);
62
- console.log('\n' + '═'.repeat(50));
63
- console.log('✨ Project created successfully!');
64
- console.log('═'.repeat(50));
65
- console.log(`\nšŸ“ Project location: ${projectPath}`);
66
- console.log('\nšŸŽÆ Next steps:');
67
- console.log(` cd ${projectName}`);
68
- console.log(' npm run dev\n');
69
- console.log('šŸ“š Documentation: https://docs.husar.ai');
70
- console.log('šŸ’¬ Need help? Join our Discord: https://discord.gg/husar\n');
71
- }
72
- async function promptConnectionMethod() {
73
- console.log('How do you want to connect to your CMS?\n');
74
- console.log(' 1. Enter project URL manually');
75
- console.log(' 2. Login to husar.ai and select from list\n');
76
- const choice = await promptChoice(2);
77
- return choice === 1 ? 'manual' : 'cloud';
78
- }
79
- async function promptManualUrl() {
80
- return new Promise((resolve) => {
81
- const rl = readline.createInterface({
82
- input: process.stdin,
83
- output: process.stdout,
84
- });
85
- const ask = () => {
86
- rl.question('\n🌐 Enter your CMS panel URL: ', (answer) => {
87
- const url = answer.trim();
88
- if (!url) {
89
- console.log(' URL is required.');
90
- ask();
91
- return;
92
- }
93
- if (!url.startsWith('http://') && !url.startsWith('https://')) {
94
- console.log(' URL must start with http:// or https://');
95
- ask();
96
- return;
97
- }
98
- rl.close();
99
- resolve(url);
100
- });
101
- };
102
- ask();
103
- });
121
+ log.blank();
122
+ const genSpin = spinner('Generating CMS client...');
123
+ await generateCmsClient(projectPath, framework);
124
+ genSpin.succeed('CMS client generated');
125
+ log.substep('cms/zeus/ - GraphQL client');
126
+ log.substep('cms/ssr.ts - Server client');
127
+ log.substep('cms/react.ts - React components');
128
+ successBox(`Project created at ${theme.info(projectPath)}\n\n` +
129
+ `Framework: ${theme.muted(framework)}\n` +
130
+ `CMS Host: ${theme.muted(project.host)}`, 'Project Ready!');
131
+ nextSteps([
132
+ `cd ${chalk.cyan(projectName)}`,
133
+ `${chalk.cyan('npm run dev')} to start development`,
134
+ `Open ${theme.link('https://docs.husar.ai')} for documentation`,
135
+ ]);
104
136
  }
105
137
  async function promptSelectProject(projects) {
106
- console.log('Select a project:\n');
107
- projects.forEach((p, i) => {
108
- console.log(` ${i + 1}. ${p.name}`);
109
- console.log(` ${p.adminURL}\n`);
110
- });
111
- const choice = await promptChoice(projects.length);
112
- return projects[choice - 1];
113
- }
114
- async function promptProjectName(suggestedName) {
115
- return new Promise((resolve) => {
116
- const rl = readline.createInterface({
117
- input: process.stdin,
118
- output: process.stdout,
119
- });
120
- const defaultName = suggestedName ? suggestedName.replace(/[^a-zA-Z0-9-_]/g, '-') : '';
121
- const prompt = defaultName
122
- ? `šŸ“ Enter project directory name [${defaultName}]: `
123
- : 'šŸ“ Enter project directory name: ';
124
- rl.question(prompt, (answer) => {
125
- rl.close();
126
- const name = answer.trim() || defaultName;
127
- resolve(name);
128
- });
129
- });
130
- }
131
- async function promptChoice(max) {
132
- return new Promise((resolvePrompt) => {
133
- const rl = readline.createInterface({
134
- input: process.stdin,
135
- output: process.stdout,
136
- });
137
- const ask = () => {
138
- rl.question(`Enter choice (1-${max}): `, (answer) => {
139
- const num = parseInt(answer, 10);
140
- if (num >= 1 && num <= max) {
141
- rl.close();
142
- resolvePrompt(num);
143
- }
144
- else {
145
- console.log(`Please enter a number between 1 and ${max}`);
146
- ask();
147
- }
148
- });
149
- };
150
- ask();
151
- });
138
+ const choice = await select('Select a project', projects.map((p) => ({
139
+ name: p.name,
140
+ message: p.name,
141
+ hint: p.adminURL,
142
+ })));
143
+ return projects.find((p) => p.name === choice);
152
144
  }
153
145
  async function ensureCloudLogin() {
154
146
  const existingAuth = await getCloudAuth();
155
147
  if (existingAuth) {
156
- console.log('šŸ” Checking existing cloud session...');
148
+ const spin = spinner('Checking existing session...');
157
149
  const isValid = await verifyAccessToken(existingAuth.accessToken);
158
150
  if (isValid) {
159
- console.log(`āœ… Logged in as: ${existingAuth.email ?? 'user'}`);
151
+ spin.succeed(`Logged in as ${theme.info(existingAuth.email ?? 'user')}`);
160
152
  return existingAuth;
161
153
  }
162
- console.log('āš ļø Session expired, need to re-authenticate...');
154
+ spin.warn('Session expired, need to re-authenticate');
163
155
  }
164
- console.log('\nšŸ” Please log in to Husar.ai...\n');
156
+ log.info('Please log in to Husar.ai...');
157
+ log.blank();
165
158
  const result = await startCloudLoginFlow();
166
159
  if (result.success && result.accessToken) {
167
- console.log(`\nāœ… Logged in as: ${result.email ?? 'user'}`);
160
+ log.success(`Logged in as ${theme.info(result.email ?? 'user')}`);
168
161
  return {
169
162
  accessToken: result.accessToken,
170
163
  email: result.email,
@@ -172,8 +165,47 @@ async function ensureCloudLogin() {
172
165
  }
173
166
  return null;
174
167
  }
168
+ async function initCleanProject(projectName) {
169
+ const projectPath = resolve(process.cwd(), projectName);
170
+ return new Promise((done) => {
171
+ const mkdirChild = spawn('mkdir', ['-p', projectName], {
172
+ stdio: 'pipe',
173
+ shell: true,
174
+ });
175
+ mkdirChild.on('close', (mkdirCode) => {
176
+ if (mkdirCode !== 0) {
177
+ done(false);
178
+ return;
179
+ }
180
+ const initChild = spawn('npm', ['init', '-y'], {
181
+ cwd: projectPath,
182
+ stdio: 'pipe',
183
+ shell: true,
184
+ });
185
+ initChild.on('close', async (initCode) => {
186
+ if (initCode !== 0) {
187
+ done(false);
188
+ return;
189
+ }
190
+ try {
191
+ await fs.mkdir(join(projectPath, 'src'), { recursive: true });
192
+ done(true);
193
+ }
194
+ catch {
195
+ done(false);
196
+ }
197
+ });
198
+ initChild.on('error', () => {
199
+ done(false);
200
+ });
201
+ });
202
+ mkdirChild.on('error', () => {
203
+ done(false);
204
+ });
205
+ });
206
+ }
175
207
  async function runFrameworkCli(framework, projectName) {
176
- return new Promise((resolve) => {
208
+ return new Promise((resolvePromise) => {
177
209
  let command;
178
210
  let args;
179
211
  if (framework === 'nextjs') {
@@ -194,22 +226,138 @@ async function runFrameworkCli(framework, projectName) {
194
226
  command = 'npm';
195
227
  args = ['create', 'vite@latest', projectName, '--', '--template', 'react-ts'];
196
228
  }
197
- console.log(`Running: ${command} ${args.join(' ')}\n`);
229
+ log.dim(`Running: ${command} ${args.join(' ')}`);
230
+ log.blank();
198
231
  const child = spawn(command, args, {
199
232
  stdio: 'inherit',
200
233
  shell: true,
201
234
  });
202
235
  child.on('close', (code) => {
203
- resolve(code === 0);
236
+ resolvePromise(code === 0);
204
237
  });
205
- child.on('error', (err) => {
206
- console.error('Failed to start framework CLI:', err.message);
207
- resolve(false);
238
+ child.on('error', () => {
239
+ resolvePromise(false);
208
240
  });
209
241
  });
210
242
  }
243
+ const HUSAR_COMMAND_TEMPLATE = `# /husar - Husar.ai CMS Operations
244
+
245
+ Use the **husar.ai** MCP server (configured in \`opencode.jsonc\`) for all CMS operations.
246
+
247
+ ## Available MCP Tools
248
+
249
+ ### Discovery & Schema
250
+
251
+ - \`listModels\` — List all model definitions with their field structures
252
+ - \`listViews\` — List all view definitions with their field structures
253
+ - \`listShapes\` — List all shape definitions
254
+ - \`graphQLTypes\` — Get the generated GraphQL SDL schema (understand exact input/output types)
255
+ - \`rootParams\` — Get root parameters (e.g. available \`_language\` options)
256
+ - \`links\` — List internal links
257
+
258
+ ### Shape Inspection
259
+
260
+ - \`shape.getWithDefinition\` — Get complete shape info including definition, fieldSet, and GraphQL types
261
+ - \`shape.model\` — Get full shape configuration
262
+ - \`shape.previewFields\` — Get expanded fields for a shape
263
+ - \`shape.fieldSet\` — Get admin page fieldset for a shape
264
+
265
+ ### Model Operations
266
+
267
+ - \`model.getWithContent\` — **Use before upsert** to understand exact structure and get current content
268
+ - \`model.list\` — List all documents for a model
269
+ - \`model.one\` — Get a single document by slug
270
+ - \`model.upsert\` — Create or update a model document (provide slug + args matching field definitions)
271
+ - \`model.remove\` — Remove a document by slug
272
+
273
+ ### View Operations (singletons)
274
+
275
+ - \`view.getWithContent\` — **Use before upsert** to understand exact structure and get current content
276
+ - \`view.one\` — Get view content
277
+ - \`view.upsert\` — Create or update view content
278
+ - \`view.remove\` — Remove a view entry
279
+
280
+ ### Definition Management
281
+
282
+ - \`upsertModel\` / \`removeModel\` — Manage model definitions (schema)
283
+ - \`upsertView\` / \`removeView\` — Manage view definitions (schema)
284
+ - \`upsertShape\` / \`removeShape\` — Manage shape definitions (schema)
285
+ - \`removeModelWithDocuments\` — Remove a model and all its documents
286
+
287
+ ### Styling
288
+
289
+ - \`style.tailwind.css.get\` — Fetch current Tailwind CSS source and compiled variants
290
+ - \`style.tailwind.css.set\` — Set Tailwind CSS source content (Tailwind v4 compiles it after save)
291
+
292
+ ### AI Generation
293
+
294
+ - \`generateContent\` — Generate content using AI
295
+ - \`generateImage\` — Generate an image using AI
296
+ - \`translateDocument\` — Translate a model document to another language
297
+ - \`translateView\` — Translate a view to another language
298
+
299
+ ### Links
300
+
301
+ - \`upsertLink\` — Create or update an internal link
302
+ - \`removeLink\` — Remove an internal link
303
+
304
+ ### Files
305
+
306
+ - \`uploadFile\` — Get a signed S3 PUT URL for uploading a file
307
+
308
+ ## Workflow Guidelines
309
+
310
+ 1. **Always call \`getWithContent\` before any upsert** — This gives you the exact field structure and current data so you can construct valid input.
311
+ 2. **Use \`graphQLTypes\`** when you need to understand the precise GraphQL input/output types expected by upsert operations.
312
+ 3. **Use \`listModels\` / \`listViews\` / \`listShapes\`** for discovery — find out what content types exist before operating on them.
313
+ 4. **For SHAPE fields**, provide nested objects matching the shape's field structure.
314
+ 5. **For RELATION fields**, provide \`_id\` strings.
315
+ 6. **Root params** (like \`_language\`) can be passed as a \`filter\` parameter to scope operations by locale.
316
+ 7. **Tailwind styles** are managed through the CMS — fetch with \`style.tailwind.css.get\` and update with \`style.tailwind.css.set\`.
317
+ 8. **Draft versions** can be saved by setting \`draft_version: true\` on upsert calls.
318
+
319
+ ## Example Workflows
320
+
321
+ ### Update view content
322
+
323
+ \`\`\`
324
+ 1. view.getWithContent (understand structure + current data)
325
+ 2. view.upsert (provide updated args)
326
+ \`\`\`
327
+
328
+ ### Create a new model document
329
+
330
+ \`\`\`
331
+ 1. model.getWithContent (understand field structure)
332
+ 2. model.upsert (provide slug + args)
333
+ \`\`\`
334
+
335
+ ### Modify CMS schema
336
+
337
+ \`\`\`
338
+ 1. listModels / listViews / listShapes (see what exists)
339
+ 2. graphQLTypes (understand current schema)
340
+ 3. upsertModel / upsertView / upsertShape (modify definitions)
341
+ \`\`\`
342
+
343
+ ### Update Tailwind styles
344
+
345
+ \`\`\`
346
+ 1. style.tailwind.css.get (see current styles)
347
+ 2. style.tailwind.css.set (update with new content)
348
+ \`\`\`
349
+ `;
350
+ async function createOpencodeCommandFolder(projectPath) {
351
+ const commandDir = join(projectPath, '.opencode', 'command');
352
+ try {
353
+ await fs.mkdir(commandDir, { recursive: true });
354
+ await fs.writeFile(join(commandDir, 'husar.md'), HUSAR_COMMAND_TEMPLATE);
355
+ }
356
+ catch {
357
+ }
358
+ }
211
359
  async function addHusarConfig(projectPath, project, framework) {
212
- const hostEnvVar = framework === 'nextjs' ? 'NEXT_PUBLIC_HUSAR_HOST' : 'VITE_HUSAR_HOST';
360
+ const hostEnvVar = framework === 'nextjs' ? 'NEXT_PUBLIC_HUSAR_HOST' : framework === 'vite' ? 'VITE_HUSAR_HOST' : 'HUSAR_HOST';
213
361
  const husarConfig = {
214
362
  host: project.host,
215
363
  hostEnvironmentVariable: hostEnvVar,
@@ -218,7 +366,6 @@ async function addHusarConfig(projectPath, project, framework) {
218
366
  overrideHost: false,
219
367
  };
220
368
  await fs.writeFile(join(projectPath, 'husar.json'), JSON.stringify(husarConfig, null, 2));
221
- console.log(' āœ“ Created husar.json');
222
369
  const envContent = `# Husar CMS Configuration
223
370
  # This file contains secrets - DO NOT commit to version control!
224
371
 
@@ -232,7 +379,6 @@ HUSAR_API_KEY=
232
379
  HUSAR_ADMIN_TOKEN=${project.adminToken}
233
380
  `;
234
381
  await fs.writeFile(join(projectPath, '.env.local'), envContent);
235
- console.log(' āœ“ Created .env.local (contains admin credentials)');
236
382
  const opencodeConfig = {
237
383
  $schema: 'https://opencode.ai/schemas/opencode.json',
238
384
  mcpServers: {
@@ -244,7 +390,7 @@ HUSAR_ADMIN_TOKEN=${project.adminToken}
244
390
  },
245
391
  };
246
392
  await fs.writeFile(join(projectPath, 'opencode.jsonc'), JSON.stringify(opencodeConfig, null, 2));
247
- console.log(' āœ“ Created opencode.jsonc (MCP configuration)');
393
+ await createOpencodeCommandFolder(projectPath);
248
394
  const gitignorePath = join(projectPath, '.gitignore');
249
395
  try {
250
396
  let gitignore = await fs.readFile(gitignorePath, 'utf-8');
@@ -258,53 +404,41 @@ HUSAR_ADMIN_TOKEN=${project.adminToken}
258
404
  if (additions.length > 0) {
259
405
  gitignore += '\n# Local environment files (contain secrets)\n' + additions.join('\n') + '\n';
260
406
  await fs.writeFile(gitignorePath, gitignore);
261
- console.log(' āœ“ Updated .gitignore');
262
407
  }
263
408
  }
264
409
  catch {
265
410
  await fs.writeFile(gitignorePath, '# Local environment files (contain secrets)\n.env.local\n.env*.local\n');
266
- console.log(' āœ“ Created .gitignore');
267
411
  }
268
412
  }
269
413
  async function installHusarPackages(projectPath) {
270
- return new Promise((resolve) => {
414
+ return new Promise((resolvePromise) => {
271
415
  const packages = ['@husar.ai/ssr', '@husar.ai/render'];
272
416
  const child = spawn('npm', ['install', ...packages], {
273
417
  cwd: projectPath,
274
- stdio: 'inherit',
418
+ stdio: 'pipe',
275
419
  shell: true,
276
420
  });
277
421
  child.on('close', () => {
278
- console.log(' āœ“ Installed @husar.ai/ssr and @husar.ai/render');
279
- resolve();
422
+ resolvePromise();
280
423
  });
281
- child.on('error', (err) => {
282
- console.error('Warning: Failed to install packages:', err.message);
283
- console.log(' Run manually: npm install @husar.ai/ssr @husar.ai/render');
284
- resolve();
424
+ child.on('error', () => {
425
+ resolvePromise();
285
426
  });
286
427
  });
287
428
  }
288
429
  async function generateCmsClient(projectPath, framework) {
289
- const srcFolder = framework === 'nextjs' ? './src' : './src';
290
- return new Promise((resolve) => {
430
+ const srcFolder = './src';
431
+ return new Promise((resolvePromise) => {
291
432
  const child = spawn('npx', ['@husar.ai/cli', 'generate', srcFolder], {
292
433
  cwd: projectPath,
293
- stdio: 'inherit',
434
+ stdio: 'pipe',
294
435
  shell: true,
295
436
  });
296
- child.on('close', (code) => {
297
- if (code === 0) {
298
- console.log(' āœ“ Generated cms/ folder with Zeus client');
299
- }
300
- else {
301
- console.log(' ⚠ CMS generation may have failed - you can run "husar generate" later');
302
- }
303
- resolve();
437
+ child.on('close', () => {
438
+ resolvePromise();
304
439
  });
305
440
  child.on('error', () => {
306
- console.log(' ⚠ Could not generate CMS client - run "husar generate" manually');
307
- resolve();
441
+ resolvePromise();
308
442
  });
309
443
  });
310
444
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/functions/create.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAe,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAgB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAkB9E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAsB;IAC3D,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAM/C,MAAM,gBAAgB,GAAG,MAAM,sBAAsB,EAAE,CAAC;IACxD,IAAI,SAAiB,CAAC;IAEtB,IAAI,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAElC,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC;IACtC,CAAC;SAAM,CAAC;QAEN,MAAM,SAAS,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAGD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAE1D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAGD,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC5D,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,kBAAkB,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAMD,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IAErF,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAEvD,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,SAAS,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,qBAAqB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;IAM1C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,MAAM,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1F,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IAMxD,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,eAAe,CAAC,CAAC;IAEzG,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC/E,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAMD,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,MAAM,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAM9D,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAMD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC/C,MAAM,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAMxD,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,0BAA0B,WAAW,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;AAC5E,CAAC;AASD,KAAK,UAAU,sBAAsB;IACnC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;AAC3C,CAAC;AAKD,KAAK,UAAU,eAAe;IAC5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,GAAG,EAAE;YACf,EAAE,CAAC,QAAQ,CAAC,iCAAiC,EAAE,CAAC,MAAM,EAAE,EAAE;gBACxD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAG1B,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;oBACnC,GAAG,EAAE,CAAC;oBACN,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9D,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;oBAC1D,GAAG,EAAE,CAAC;oBACN,OAAO;gBACT,CAAC;gBAED,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,GAAG,EAAE,CAAC;IACR,CAAC,CAAC,CAAC;AACL,CAAC;AAKD,KAAK,UAAU,mBAAmB,CAAC,QAAwB;IACzD,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;AAC/B,CAAC;AAKD,KAAK,UAAU,iBAAiB,CAAC,aAAsB;IACrD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,MAAM,GAAG,WAAW;YACxB,CAAC,CAAC,oCAAoC,WAAW,KAAK;YACtD,CAAC,CAAC,mCAAmC,CAAC;QAExC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;YAC7B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAKD,KAAK,UAAU,YAAY,CAAC,GAAW;IACrC,OAAO,IAAI,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;QACnC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,GAAG,EAAE;YACf,EAAE,CAAC,QAAQ,CAAC,mBAAmB,GAAG,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE;gBAClD,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACjC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;oBAC3B,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,aAAa,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAC;oBAC1D,GAAG,EAAE,CAAC;gBACR,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,GAAG,EAAE,CAAC;IACR,CAAC,CAAC,CAAC;AACL,CAAC;AASD,KAAK,UAAU,gBAAgB;IAE7B,MAAM,YAAY,GAAG,MAAM,YAAY,EAAE,CAAC;IAE1C,IAAI,YAAY,EAAE,CAAC;QAEjB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAElE,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,mBAAmB,YAAY,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;YAC/D,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IACjE,CAAC;IAGD,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAE3C,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;QAC3D,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AASD,KAAK,UAAU,eAAe,CAAC,SAA4B,EAAE,WAAmB;IAC9E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,OAAe,CAAC;QACpB,IAAI,IAAc,CAAC;QAEnB,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAE3B,OAAO,GAAG,KAAK,CAAC;YAChB,IAAI,GAAG;gBACL,wBAAwB;gBACxB,WAAW;gBACX,cAAc;gBACd,YAAY;gBACZ,UAAU;gBACV,OAAO;gBACP,WAAW;gBACX,gBAAgB;gBAChB,KAAK;aACN,CAAC;QACJ,CAAC;aAAM,CAAC;YAEN,OAAO,GAAG,KAAK,CAAC;YAChB,IAAI,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEvD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACjC,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAUD,KAAK,UAAU,cAAc,CAAC,WAAmB,EAAE,OAAoB,EAAE,SAA4B;IACnG,MAAM,UAAU,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAGzF,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,uBAAuB,EAAE,UAAU;QACnC,iCAAiC,EAAE,eAAe;QAClD,aAAa,EAAE,mBAAmB;QAClC,YAAY,EAAE,KAAK;KACpB,CAAC;IACF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAGvC,MAAM,UAAU,GAAG;;;;EAInB,UAAU,IAAI,OAAO,CAAC,IAAI;;;;;;oBAMR,OAAO,CAAC,UAAU;CACrC,CAAC;IACA,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IAGpE,MAAM,cAAc,GAAG;QACrB,OAAO,EAAE,2CAA2C;QACpD,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,eAAe,EAAE,KAAK,CAAC;gBAC9B,GAAG,EAAE,GAAG;aACT;SACF;KACF,CAAC;IACF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAG/D,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,IAAI,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACvC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,SAAS,IAAI,iDAAiD,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAC7F,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QAEP,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,wEAAwE,CAAC,CAAC;QAC5G,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAKD,KAAK,UAAU,oBAAoB,CAAC,WAAmB;IACrD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;QAEvD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,GAAG,QAAQ,CAAC,EAAE;YACnD,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YACjE,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;YAC3E,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAKD,KAAK,UAAU,iBAAiB,CAAC,WAAmB,EAAE,SAA4B;IAEhF,MAAM,SAAS,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAE7D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE;YACnE,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;YAC1F,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;YAClF,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/functions/create.ts"],"names":[],"mappings":"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"}