gazill 2.6.1 → 2.7.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.
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAMA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAmFlD"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAuCA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAiGlD"}
@@ -1,8 +1,21 @@
1
- import inquirer from 'inquirer';
2
1
  import chalk from 'chalk';
3
2
  import ora from 'ora';
4
- import { signin, signup } from '../lib/api.js';
5
- import { saveAuth, isAuthenticated, getAuth } from '../lib/config.js';
3
+ import { saveAuth, isAuthenticated, getAuth, getApiUrl } from '../lib/config.js';
4
+ // Open URL in default browser
5
+ async function openBrowser(url) {
6
+ const { exec } = await import('child_process');
7
+ const { platform } = await import('os');
8
+ const command = platform() === 'darwin'
9
+ ? `open "${url}"`
10
+ : platform() === 'win32'
11
+ ? `start "" "${url}"`
12
+ : `xdg-open "${url}"`;
13
+ exec(command, (error) => {
14
+ if (error) {
15
+ console.log(chalk.gray(`Could not open browser. Please visit: ${url}`));
16
+ }
17
+ });
18
+ }
6
19
  export async function loginCommand() {
7
20
  // Check if already authenticated
8
21
  if (await isAuthenticated()) {
@@ -11,62 +24,74 @@ export async function loginCommand() {
11
24
  console.log(chalk.gray('Run "gazill logout" to switch accounts.'));
12
25
  return;
13
26
  }
14
- // Ask for action
15
- const { action } = await inquirer.prompt([
16
- {
17
- type: 'list',
18
- name: 'action',
19
- message: 'What would you like to do?',
20
- choices: [
21
- { name: 'Sign in to existing account', value: 'signin' },
22
- { name: 'Create a new account', value: 'signup' },
23
- ],
24
- },
25
- ]);
26
- // Get credentials
27
- const { email, password } = await inquirer.prompt([
28
- {
29
- type: 'input',
30
- name: 'email',
31
- message: 'Email:',
32
- validate: (input) => {
33
- if (!input || !input.includes('@')) {
34
- return 'Please enter a valid email address';
35
- }
36
- return true;
37
- },
38
- },
39
- {
40
- type: 'password',
41
- name: 'password',
42
- message: 'Password:',
43
- mask: '*',
44
- validate: (input) => {
45
- if (!input || input.length < 8) {
46
- return 'Password must be at least 8 characters';
47
- }
48
- return true;
49
- },
50
- },
51
- ]);
52
- const spinner = ora(action === 'signup' ? 'Creating account...' : 'Signing in...').start();
27
+ const apiUrl = await getApiUrl();
28
+ // Start device auth flow
29
+ const spinner = ora('Starting login...').start();
53
30
  try {
54
- const response = action === 'signup'
55
- ? await signup(email, password)
56
- : await signin(email, password);
57
- // Save auth token
58
- await saveAuth({
59
- token: response.token,
60
- email: response.user.email,
31
+ // Get device code
32
+ const startResponse = await fetch(`${apiUrl}/api/auth/device/start`, {
33
+ method: 'POST',
34
+ headers: { 'Content-Type': 'application/json' },
61
35
  });
62
- spinner.succeed(chalk.green(action === 'signup'
63
- ? 'Account created successfully!'
64
- : 'Signed in successfully!'));
65
- console.log(chalk.blue(`\nWelcome, ${response.user.email}!`));
66
- console.log(chalk.gray('Run "gazill new <project-name>" to create a project.'));
36
+ if (!startResponse.ok) {
37
+ throw new Error('Failed to start login flow');
38
+ }
39
+ const { deviceCode, userCode, verificationUrl } = await startResponse.json();
40
+ spinner.stop();
41
+ // Display code and instructions
42
+ console.log('');
43
+ console.log(chalk.blue(' Login to Gazill'));
44
+ console.log('');
45
+ console.log(' Open this URL in your browser:');
46
+ console.log('');
47
+ console.log(chalk.cyan(` ${verificationUrl}`));
48
+ console.log('');
49
+ console.log(' And enter this code:');
50
+ console.log('');
51
+ console.log(chalk.bold.white(` ${userCode}`));
52
+ console.log('');
53
+ // Try to open browser
54
+ await openBrowser(`${verificationUrl}?code=${userCode.replace('-', '')}`);
55
+ // Start polling
56
+ const pollSpinner = ora('Waiting for authorization...').start();
57
+ const pollInterval = 2000; // 2 seconds
58
+ const maxAttempts = 300; // 10 minutes max (300 * 2s)
59
+ let attempts = 0;
60
+ while (attempts < maxAttempts) {
61
+ await new Promise(resolve => setTimeout(resolve, pollInterval));
62
+ const pollResponse = await fetch(`${apiUrl}/api/auth/device/poll`, {
63
+ method: 'POST',
64
+ headers: { 'Content-Type': 'application/json' },
65
+ body: JSON.stringify({ deviceCode }),
66
+ });
67
+ if (!pollResponse.ok) {
68
+ attempts++;
69
+ continue;
70
+ }
71
+ const pollResult = await pollResponse.json();
72
+ if (pollResult.status === 'authorized' && pollResult.token && pollResult.user) {
73
+ // Save auth token
74
+ await saveAuth({
75
+ token: pollResult.token,
76
+ email: pollResult.user.email,
77
+ });
78
+ pollSpinner.succeed(chalk.green('Logged in successfully!'));
79
+ console.log('');
80
+ console.log(chalk.blue(`Welcome, ${pollResult.user.email}!`));
81
+ console.log(chalk.gray('Run "gazill new <project-name>" to create a project.'));
82
+ return;
83
+ }
84
+ if (pollResult.status === 'expired') {
85
+ pollSpinner.fail(chalk.red('Login expired. Please try again.'));
86
+ process.exit(1);
87
+ }
88
+ attempts++;
89
+ }
90
+ pollSpinner.fail(chalk.red('Login timed out. Please try again.'));
91
+ process.exit(1);
67
92
  }
68
93
  catch (error) {
69
- const message = error instanceof Error ? error.message : 'Authentication failed';
94
+ const message = error instanceof Error ? error.message : 'Login failed';
70
95
  spinner.fail(chalk.red(message));
71
96
  process.exit(1);
72
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gazill",
3
- "version": "2.6.1",
3
+ "version": "2.7.0",
4
4
  "description": "CLI for Gazill auto-deploy platform",
5
5
  "type": "module",
6
6
  "bin": {