@husar.ai/cli 0.4.3 → 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.
package/dist/cli.js CHANGED
@@ -1,4 +1,11 @@
1
1
  #!/usr/bin/env node
2
+ process.removeAllListeners('warning');
3
+ process.on('warning', (warning) => {
4
+ if (warning.name === 'DeprecationWarning' && warning.message.includes('punycode')) {
5
+ return;
6
+ }
7
+ console.warn(warning.name, warning.message);
8
+ });
2
9
  import { Command } from 'commander';
3
10
  import { ConfigMaker } from 'config-maker';
4
11
  import { parser } from './functions/parser.js';
@@ -8,73 +15,129 @@ import { getAdminToken } from "./types/config.js";
8
15
  import { startLoginFlow } from './auth/login.js';
9
16
  import { clearAuth, getCurrentUser, getConfigPath, isLoggedIn, readAuthConfig } from './auth/config.js';
10
17
  import { runCreateCommand } from './functions/create.js';
18
+ import { printBanner, printCompactBanner, log, successBox, errorBox, infoBox, spinner, theme, chalk } from './ui.js';
11
19
  const config = new ConfigMaker('husar', { decoders: {} });
12
20
  const program = new Command();
13
- program.name('husar').description('HUSAR CLI for complete generation').version('0.0.5');
21
+ program
22
+ .name('husar.ai')
23
+ .description(theme.muted('Headless CMS for Modern Developers'))
24
+ .version('0.4.3')
25
+ .hook('preAction', (thisCommand) => {
26
+ const cmdName = thisCommand.args[0];
27
+ if (cmdName !== 'mcp') {
28
+ printCompactBanner();
29
+ }
30
+ });
14
31
  program
15
32
  .command('generate [folderPath]')
16
- .description('Generate cms structure in the given path')
33
+ .description('Generate cms/ structure with GraphQL client')
17
34
  .action(async (folderPath = '.') => {
18
- const host = await config.getValueOrThrow('host', { saveOnInput: true });
19
- const conf = config.get();
20
- const hostEnv = conf.hostEnvironmentVariable;
21
- const authenticationEnv = conf.authenticationEnvironmentVariable;
22
- await generateCms({
23
- baseFolder: folderPath,
24
- host,
25
- hostEnvironmentVariable: hostEnv,
26
- authenticationEnvironmentVariable: authenticationEnv,
27
- });
35
+ const spin = spinner('Loading configuration...');
36
+ try {
37
+ const host = await config.getValueOrThrow('host', { saveOnInput: true });
38
+ const conf = config.get();
39
+ const hostEnv = conf.hostEnvironmentVariable;
40
+ const authenticationEnv = conf.authenticationEnvironmentVariable;
41
+ spin.text = 'Generating CMS client...';
42
+ await generateCms({
43
+ baseFolder: folderPath,
44
+ host,
45
+ hostEnvironmentVariable: hostEnv,
46
+ authenticationEnvironmentVariable: authenticationEnv,
47
+ });
48
+ spin.succeed('CMS client generated successfully');
49
+ log.blank();
50
+ log.done(`Generated in ${theme.info(folderPath + '/cms/')}`);
51
+ log.substep('zeus/ - GraphQL Zeus client');
52
+ log.substep('ssr.ts - Server-side client');
53
+ log.substep('react.ts - React components');
54
+ log.substep('host.ts - Host configuration');
55
+ log.blank();
56
+ }
57
+ catch (err) {
58
+ spin.fail('Generation failed');
59
+ log.error(err.message);
60
+ process.exit(1);
61
+ }
28
62
  });
29
63
  program
30
64
  .command('copy <inputFile> <name>')
31
- .description('AI-parse HTML/JSX and upsert into CMS (model/shape) using gpt-5')
65
+ .description('AI-parse HTML/JSX and upsert into CMS')
32
66
  .option('-t, --type <type>', 'target type: model|shape', 'shape')
33
67
  .action(async (inputFile, name, opts) => {
34
- const conf = config.get();
35
- if (!conf.host) {
36
- throw new Error('Host is not configured. Please run "husar generate" first.');
68
+ const spin = spinner(`Parsing ${inputFile}...`);
69
+ try {
70
+ const conf = config.get();
71
+ if (!conf.host) {
72
+ spin.fail('Host not configured');
73
+ errorBox('Please run "husar.ai generate" first to configure your CMS host.');
74
+ process.exit(1);
75
+ }
76
+ const adminToken = getAdminToken(conf);
77
+ if (!adminToken) {
78
+ spin.fail('Admin token not configured');
79
+ errorBox('Set HUSAR_ADMIN_TOKEN environment variable,\nor add adminTokenEnv to husar.json', 'Authentication Required');
80
+ process.exit(1);
81
+ }
82
+ spin.text = `AI parsing ${inputFile}...`;
83
+ const result = await parser({
84
+ inputFile,
85
+ opts: { name, type: opts?.type },
86
+ authentication: { HUSAR_MCP_HOST: conf.host, HUSAR_MCP_ADMIN_TOKEN: adminToken },
87
+ });
88
+ if (result) {
89
+ spin.succeed(`Parsed and upserted as ${opts?.type || 'shape'}: ${name}`);
90
+ }
91
+ else {
92
+ spin.fail('Failed to parse file');
93
+ process.exit(1);
94
+ }
37
95
  }
38
- const adminToken = getAdminToken(conf);
39
- if (!adminToken) {
40
- throw new Error('Admin token not configured. Set HUSAR_ADMIN_TOKEN env var, or adminTokenEnv in husar.json');
96
+ catch (err) {
97
+ spin.fail('Parse failed');
98
+ log.error(err.message);
99
+ process.exit(1);
41
100
  }
42
- const result = await parser({
43
- inputFile,
44
- opts: { name, type: opts?.type },
45
- authentication: { HUSAR_MCP_HOST: conf.host, HUSAR_MCP_ADMIN_TOKEN: adminToken },
46
- });
47
- console.log(result ? 'File parsed and upserted successfully.' : 'Failed to parse and upsert file.');
48
101
  });
49
102
  program
50
103
  .command('mcp')
51
- .description('Run the Husar MCP server over stdio')
104
+ .description('Start MCP server for AI IDE integration')
52
105
  .action(async () => {
53
106
  await startMcpServer();
54
107
  await new Promise(() => { });
55
108
  });
56
109
  program
57
110
  .command('login')
58
- .description('Log in to Husar.ai via browser authentication')
111
+ .description('Log in to Husar.ai via browser')
59
112
  .action(async () => {
60
113
  const loggedIn = await isLoggedIn();
61
114
  if (loggedIn) {
62
115
  const user = await getCurrentUser();
63
- console.log(`Already logged in as ${user?.email}`);
64
- console.log('Run "husar logout" to switch accounts.');
116
+ infoBox(`Logged in as ${theme.info(user?.email ?? 'unknown')}\n\n` +
117
+ `Run ${theme.muted('husar.ai logout')} to switch accounts.`, 'Already Authenticated');
65
118
  return;
66
119
  }
67
- console.log('Starting Husar.ai authentication...');
68
- const result = await startLoginFlow();
69
- if (result.success) {
70
- console.log(`\n✅ Successfully logged in as ${result.email}`);
71
- if (result.project) {
72
- console.log(` Connected to project: ${result.project.projectName}`);
73
- console.log(` Host: ${result.project.host}`);
120
+ const spin = spinner('Opening browser for authentication...');
121
+ try {
122
+ const result = await startLoginFlow();
123
+ if (result.success) {
124
+ spin.succeed('Authentication successful');
125
+ const details = [`Email: ${theme.info(result.email ?? 'unknown')}`];
126
+ if (result.project) {
127
+ details.push(`Project: ${theme.info(result.project.projectName)}`);
128
+ details.push(`Host: ${theme.muted(result.project.host)}`);
129
+ }
130
+ successBox(details.join('\n'), 'Logged In');
131
+ }
132
+ else {
133
+ spin.fail('Authentication failed');
134
+ errorBox(result.error ?? 'Unknown error');
135
+ process.exit(1);
74
136
  }
75
137
  }
76
- else {
77
- console.error(`\n❌ Login failed: ${result.error}`);
138
+ catch (err) {
139
+ spin.fail('Login failed');
140
+ log.error(err.message);
78
141
  process.exit(1);
79
142
  }
80
143
  });
@@ -84,49 +147,64 @@ program
84
147
  .action(async () => {
85
148
  const loggedIn = await isLoggedIn();
86
149
  if (!loggedIn) {
87
- console.log('Not logged in.');
150
+ log.info('Not logged in.');
88
151
  return;
89
152
  }
90
153
  const user = await getCurrentUser();
154
+ const spin = spinner('Clearing credentials...');
91
155
  await clearAuth();
92
- console.log(`✅ Logged out${user?.email ? ` (was: ${user.email})` : ''}`);
93
- console.log(` Cleared credentials from ${getConfigPath()}`);
156
+ spin.succeed('Logged out successfully');
157
+ log.dim(`Was: ${user?.email ?? 'unknown'}`);
158
+ log.dim(`Cleared: ${getConfigPath()}`);
94
159
  });
95
160
  program
96
161
  .command('whoami')
97
- .description('Display current logged-in user and projects')
162
+ .description('Display current user and connected projects')
98
163
  .action(async () => {
99
164
  const loggedIn = await isLoggedIn();
100
165
  if (!loggedIn) {
101
- console.log('Not logged in. Run "husar login" to authenticate.');
166
+ infoBox(`Not logged in.\n\nRun ${theme.info('husar.ai login')} to authenticate.`, 'Authentication Status');
102
167
  return;
103
168
  }
104
169
  const user = await getCurrentUser();
105
170
  const authConfig = await readAuthConfig();
106
- console.log(`\n👤 Logged in as: ${user?.email}`);
171
+ console.log();
172
+ console.log(chalk.bold(' Account'));
173
+ console.log(` ${theme.muted('Email')} ${theme.info(user?.email ?? 'unknown')}`);
174
+ console.log(` ${theme.muted('Config')} ${getConfigPath()}`);
107
175
  if (authConfig.projects && Object.keys(authConfig.projects).length > 0) {
108
- console.log('\n📦 Connected projects:');
176
+ console.log();
177
+ console.log(chalk.bold(' Connected Projects'));
109
178
  for (const [name, project] of Object.entries(authConfig.projects)) {
110
- console.log(` • ${name}`);
111
- console.log(` Host: ${project.host}`);
179
+ console.log(` ${theme.primary('')} ${name}`);
180
+ console.log(` ${theme.muted(project.host)}`);
112
181
  }
113
182
  }
114
- else {
115
- console.log('\nNo projects connected. Run "husar create" to set up a new project.');
116
- }
117
- console.log(`\n📁 Config: ${getConfigPath()}`);
183
+ console.log();
118
184
  });
119
185
  program
120
186
  .command('create [projectName]')
121
- .description('Create a new project with Husar CMS integration')
122
- .option('-f, --framework <framework>', 'Framework to use: nextjs or vite', 'nextjs')
123
- .option('--skip-install', 'Skip package installation after scaffolding')
187
+ .description('Create a new project with Husar CMS')
188
+ .option('-f, --framework <framework>', 'nextjs, vite, or clean', 'nextjs')
189
+ .option('--skip-install', 'Skip npm install after scaffolding')
124
190
  .action(async (projectName, opts) => {
191
+ printBanner('Project Creator');
125
192
  await runCreateCommand({
126
193
  projectName,
127
194
  framework: opts.framework,
128
195
  skipInstall: opts.skipInstall,
129
196
  });
130
197
  });
198
+ program.addHelpText('before', () => {
199
+ printBanner();
200
+ return '';
201
+ });
202
+ program.addHelpText('after', () => {
203
+ console.log();
204
+ console.log(theme.muted(' Documentation:'), theme.link('https://docs.husar.ai'));
205
+ console.log(theme.muted(' Discord:'), theme.link('https://discord.gg/husar'));
206
+ console.log();
207
+ return '';
208
+ });
131
209
  program.parse(process.argv);
132
210
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export interface CreateOptions {
2
2
  projectName?: string;
3
- framework: 'nextjs' | 'vite';
3
+ framework?: 'nextjs' | 'vite' | 'clean';
4
4
  skipInstall?: boolean;
5
5
  }
6
6
  export declare function runCreateCommand(options: CreateOptions): Promise<void>;