@husar.ai/cli 0.4.3 → 0.4.5

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,164 @@
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
+ ]);
136
+ process.exit(0);
104
137
  }
105
138
  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
- });
139
+ const choice = await select('Select a project', projects.map((p) => ({
140
+ name: p.name,
141
+ message: p.name,
142
+ hint: p.adminURL,
143
+ })));
144
+ return projects.find((p) => p.name === choice);
152
145
  }
153
146
  async function ensureCloudLogin() {
154
147
  const existingAuth = await getCloudAuth();
155
148
  if (existingAuth) {
156
- console.log('šŸ” Checking existing cloud session...');
149
+ const spin = spinner('Checking existing session...');
157
150
  const isValid = await verifyAccessToken(existingAuth.accessToken);
158
151
  if (isValid) {
159
- console.log(`āœ… Logged in as: ${existingAuth.email ?? 'user'}`);
152
+ spin.succeed(`Logged in as ${theme.info(existingAuth.email ?? 'user')}`);
160
153
  return existingAuth;
161
154
  }
162
- console.log('āš ļø Session expired, need to re-authenticate...');
155
+ spin.warn('Session expired, need to re-authenticate');
163
156
  }
164
- console.log('\nšŸ” Please log in to Husar.ai...\n');
157
+ log.info('Please log in to Husar.ai...');
158
+ log.blank();
165
159
  const result = await startCloudLoginFlow();
166
160
  if (result.success && result.accessToken) {
167
- console.log(`\nāœ… Logged in as: ${result.email ?? 'user'}`);
161
+ log.success(`Logged in as ${theme.info(result.email ?? 'user')}`);
168
162
  return {
169
163
  accessToken: result.accessToken,
170
164
  email: result.email,
@@ -172,8 +166,47 @@ async function ensureCloudLogin() {
172
166
  }
173
167
  return null;
174
168
  }
169
+ async function initCleanProject(projectName) {
170
+ const projectPath = resolve(process.cwd(), projectName);
171
+ return new Promise((done) => {
172
+ const mkdirChild = spawn('mkdir', ['-p', projectName], {
173
+ stdio: 'pipe',
174
+ shell: true,
175
+ });
176
+ mkdirChild.on('close', (mkdirCode) => {
177
+ if (mkdirCode !== 0) {
178
+ done(false);
179
+ return;
180
+ }
181
+ const initChild = spawn('npm', ['init', '-y'], {
182
+ cwd: projectPath,
183
+ stdio: 'pipe',
184
+ shell: true,
185
+ });
186
+ initChild.on('close', async (initCode) => {
187
+ if (initCode !== 0) {
188
+ done(false);
189
+ return;
190
+ }
191
+ try {
192
+ await fs.mkdir(join(projectPath, 'src'), { recursive: true });
193
+ done(true);
194
+ }
195
+ catch {
196
+ done(false);
197
+ }
198
+ });
199
+ initChild.on('error', () => {
200
+ done(false);
201
+ });
202
+ });
203
+ mkdirChild.on('error', () => {
204
+ done(false);
205
+ });
206
+ });
207
+ }
175
208
  async function runFrameworkCli(framework, projectName) {
176
- return new Promise((resolve) => {
209
+ return new Promise((resolvePromise) => {
177
210
  let command;
178
211
  let args;
179
212
  if (framework === 'nextjs') {
@@ -194,22 +227,138 @@ async function runFrameworkCli(framework, projectName) {
194
227
  command = 'npm';
195
228
  args = ['create', 'vite@latest', projectName, '--', '--template', 'react-ts'];
196
229
  }
197
- console.log(`Running: ${command} ${args.join(' ')}\n`);
230
+ log.dim(`Running: ${command} ${args.join(' ')}`);
231
+ log.blank();
198
232
  const child = spawn(command, args, {
199
233
  stdio: 'inherit',
200
234
  shell: true,
201
235
  });
202
236
  child.on('close', (code) => {
203
- resolve(code === 0);
237
+ resolvePromise(code === 0);
204
238
  });
205
- child.on('error', (err) => {
206
- console.error('Failed to start framework CLI:', err.message);
207
- resolve(false);
239
+ child.on('error', () => {
240
+ resolvePromise(false);
208
241
  });
209
242
  });
210
243
  }
244
+ const HUSAR_COMMAND_TEMPLATE = `# /husar - Husar.ai CMS Operations
245
+
246
+ Use the **husar.ai** MCP server (configured in \`opencode.jsonc\`) for all CMS operations.
247
+
248
+ ## Available MCP Tools
249
+
250
+ ### Discovery & Schema
251
+
252
+ - \`listModels\` — List all model definitions with their field structures
253
+ - \`listViews\` — List all view definitions with their field structures
254
+ - \`listShapes\` — List all shape definitions
255
+ - \`graphQLTypes\` — Get the generated GraphQL SDL schema (understand exact input/output types)
256
+ - \`rootParams\` — Get root parameters (e.g. available \`_language\` options)
257
+ - \`links\` — List internal links
258
+
259
+ ### Shape Inspection
260
+
261
+ - \`shape.getWithDefinition\` — Get complete shape info including definition, fieldSet, and GraphQL types
262
+ - \`shape.model\` — Get full shape configuration
263
+ - \`shape.previewFields\` — Get expanded fields for a shape
264
+ - \`shape.fieldSet\` — Get admin page fieldset for a shape
265
+
266
+ ### Model Operations
267
+
268
+ - \`model.getWithContent\` — **Use before upsert** to understand exact structure and get current content
269
+ - \`model.list\` — List all documents for a model
270
+ - \`model.one\` — Get a single document by slug
271
+ - \`model.upsert\` — Create or update a model document (provide slug + args matching field definitions)
272
+ - \`model.remove\` — Remove a document by slug
273
+
274
+ ### View Operations (singletons)
275
+
276
+ - \`view.getWithContent\` — **Use before upsert** to understand exact structure and get current content
277
+ - \`view.one\` — Get view content
278
+ - \`view.upsert\` — Create or update view content
279
+ - \`view.remove\` — Remove a view entry
280
+
281
+ ### Definition Management
282
+
283
+ - \`upsertModel\` / \`removeModel\` — Manage model definitions (schema)
284
+ - \`upsertView\` / \`removeView\` — Manage view definitions (schema)
285
+ - \`upsertShape\` / \`removeShape\` — Manage shape definitions (schema)
286
+ - \`removeModelWithDocuments\` — Remove a model and all its documents
287
+
288
+ ### Styling
289
+
290
+ - \`style.tailwind.css.get\` — Fetch current Tailwind CSS source and compiled variants
291
+ - \`style.tailwind.css.set\` — Set Tailwind CSS source content (Tailwind v4 compiles it after save)
292
+
293
+ ### AI Generation
294
+
295
+ - \`generateContent\` — Generate content using AI
296
+ - \`generateImage\` — Generate an image using AI
297
+ - \`translateDocument\` — Translate a model document to another language
298
+ - \`translateView\` — Translate a view to another language
299
+
300
+ ### Links
301
+
302
+ - \`upsertLink\` — Create or update an internal link
303
+ - \`removeLink\` — Remove an internal link
304
+
305
+ ### Files
306
+
307
+ - \`uploadFile\` — Get a signed S3 PUT URL for uploading a file
308
+
309
+ ## Workflow Guidelines
310
+
311
+ 1. **Always call \`getWithContent\` before any upsert** — This gives you the exact field structure and current data so you can construct valid input.
312
+ 2. **Use \`graphQLTypes\`** when you need to understand the precise GraphQL input/output types expected by upsert operations.
313
+ 3. **Use \`listModels\` / \`listViews\` / \`listShapes\`** for discovery — find out what content types exist before operating on them.
314
+ 4. **For SHAPE fields**, provide nested objects matching the shape's field structure.
315
+ 5. **For RELATION fields**, provide \`_id\` strings.
316
+ 6. **Root params** (like \`_language\`) can be passed as a \`filter\` parameter to scope operations by locale.
317
+ 7. **Tailwind styles** are managed through the CMS — fetch with \`style.tailwind.css.get\` and update with \`style.tailwind.css.set\`.
318
+ 8. **Draft versions** can be saved by setting \`draft_version: true\` on upsert calls.
319
+
320
+ ## Example Workflows
321
+
322
+ ### Update view content
323
+
324
+ \`\`\`
325
+ 1. view.getWithContent (understand structure + current data)
326
+ 2. view.upsert (provide updated args)
327
+ \`\`\`
328
+
329
+ ### Create a new model document
330
+
331
+ \`\`\`
332
+ 1. model.getWithContent (understand field structure)
333
+ 2. model.upsert (provide slug + args)
334
+ \`\`\`
335
+
336
+ ### Modify CMS schema
337
+
338
+ \`\`\`
339
+ 1. listModels / listViews / listShapes (see what exists)
340
+ 2. graphQLTypes (understand current schema)
341
+ 3. upsertModel / upsertView / upsertShape (modify definitions)
342
+ \`\`\`
343
+
344
+ ### Update Tailwind styles
345
+
346
+ \`\`\`
347
+ 1. style.tailwind.css.get (see current styles)
348
+ 2. style.tailwind.css.set (update with new content)
349
+ \`\`\`
350
+ `;
351
+ async function createOpencodeCommandFolder(projectPath) {
352
+ const commandDir = join(projectPath, '.opencode', 'command');
353
+ try {
354
+ await fs.mkdir(commandDir, { recursive: true });
355
+ await fs.writeFile(join(commandDir, 'husar.md'), HUSAR_COMMAND_TEMPLATE);
356
+ }
357
+ catch {
358
+ }
359
+ }
211
360
  async function addHusarConfig(projectPath, project, framework) {
212
- const hostEnvVar = framework === 'nextjs' ? 'NEXT_PUBLIC_HUSAR_HOST' : 'VITE_HUSAR_HOST';
361
+ const hostEnvVar = framework === 'nextjs' ? 'NEXT_PUBLIC_HUSAR_HOST' : framework === 'vite' ? 'VITE_HUSAR_HOST' : 'HUSAR_HOST';
213
362
  const husarConfig = {
214
363
  host: project.host,
215
364
  hostEnvironmentVariable: hostEnvVar,
@@ -218,7 +367,6 @@ async function addHusarConfig(projectPath, project, framework) {
218
367
  overrideHost: false,
219
368
  };
220
369
  await fs.writeFile(join(projectPath, 'husar.json'), JSON.stringify(husarConfig, null, 2));
221
- console.log(' āœ“ Created husar.json');
222
370
  const envContent = `# Husar CMS Configuration
223
371
  # This file contains secrets - DO NOT commit to version control!
224
372
 
@@ -232,7 +380,6 @@ HUSAR_API_KEY=
232
380
  HUSAR_ADMIN_TOKEN=${project.adminToken}
233
381
  `;
234
382
  await fs.writeFile(join(projectPath, '.env.local'), envContent);
235
- console.log(' āœ“ Created .env.local (contains admin credentials)');
236
383
  const opencodeConfig = {
237
384
  $schema: 'https://opencode.ai/schemas/opencode.json',
238
385
  mcpServers: {
@@ -244,7 +391,7 @@ HUSAR_ADMIN_TOKEN=${project.adminToken}
244
391
  },
245
392
  };
246
393
  await fs.writeFile(join(projectPath, 'opencode.jsonc'), JSON.stringify(opencodeConfig, null, 2));
247
- console.log(' āœ“ Created opencode.jsonc (MCP configuration)');
394
+ await createOpencodeCommandFolder(projectPath);
248
395
  const gitignorePath = join(projectPath, '.gitignore');
249
396
  try {
250
397
  let gitignore = await fs.readFile(gitignorePath, 'utf-8');
@@ -258,53 +405,41 @@ HUSAR_ADMIN_TOKEN=${project.adminToken}
258
405
  if (additions.length > 0) {
259
406
  gitignore += '\n# Local environment files (contain secrets)\n' + additions.join('\n') + '\n';
260
407
  await fs.writeFile(gitignorePath, gitignore);
261
- console.log(' āœ“ Updated .gitignore');
262
408
  }
263
409
  }
264
410
  catch {
265
411
  await fs.writeFile(gitignorePath, '# Local environment files (contain secrets)\n.env.local\n.env*.local\n');
266
- console.log(' āœ“ Created .gitignore');
267
412
  }
268
413
  }
269
414
  async function installHusarPackages(projectPath) {
270
- return new Promise((resolve) => {
415
+ return new Promise((resolvePromise) => {
271
416
  const packages = ['@husar.ai/ssr', '@husar.ai/render'];
272
417
  const child = spawn('npm', ['install', ...packages], {
273
418
  cwd: projectPath,
274
- stdio: 'inherit',
419
+ stdio: 'pipe',
275
420
  shell: true,
276
421
  });
277
422
  child.on('close', () => {
278
- console.log(' āœ“ Installed @husar.ai/ssr and @husar.ai/render');
279
- resolve();
423
+ resolvePromise();
280
424
  });
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();
425
+ child.on('error', () => {
426
+ resolvePromise();
285
427
  });
286
428
  });
287
429
  }
288
430
  async function generateCmsClient(projectPath, framework) {
289
- const srcFolder = framework === 'nextjs' ? './src' : './src';
290
- return new Promise((resolve) => {
431
+ const srcFolder = './src';
432
+ return new Promise((resolvePromise) => {
291
433
  const child = spawn('npx', ['@husar.ai/cli', 'generate', srcFolder], {
292
434
  cwd: projectPath,
293
- stdio: 'inherit',
435
+ stdio: 'pipe',
294
436
  shell: true,
295
437
  });
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();
438
+ child.on('close', () => {
439
+ resolvePromise();
304
440
  });
305
441
  child.on('error', () => {
306
- console.log(' ⚠ Could not generate CMS client - run "husar generate" manually');
307
- resolve();
442
+ resolvePromise();
308
443
  });
309
444
  });
310
445
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/functions/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/functions/create.ts"],"names":[],"mappings":"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"}