codevf 1.0.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/ARCHITECTURE.md +285 -0
- package/BUILD_SUMMARY.md +340 -0
- package/LICENSE +21 -0
- package/QUICKSTART.md +180 -0
- package/README.md +104 -0
- package/dist/commands/fix.d.ts +2 -0
- package/dist/commands/fix.d.ts.map +1 -0
- package/dist/commands/fix.js +118 -0
- package/dist/commands/fix.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +270 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/login.d.ts +2 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +62 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +2 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +14 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/sync.d.ts +4 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +93 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/tasks.d.ts +2 -0
- package/dist/commands/tasks.d.ts.map +1 -0
- package/dist/commands/tasks.js +41 -0
- package/dist/commands/tasks.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +248 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/api.d.ts +36 -0
- package/dist/modules/api.d.ts.map +1 -0
- package/dist/modules/api.js +107 -0
- package/dist/modules/api.js.map +1 -0
- package/dist/modules/auth.d.ts +13 -0
- package/dist/modules/auth.d.ts.map +1 -0
- package/dist/modules/auth.js +80 -0
- package/dist/modules/auth.js.map +1 -0
- package/dist/modules/config.d.ts +17 -0
- package/dist/modules/config.d.ts.map +1 -0
- package/dist/modules/config.js +76 -0
- package/dist/modules/config.js.map +1 -0
- package/dist/modules/git.d.ts +13 -0
- package/dist/modules/git.d.ts.map +1 -0
- package/dist/modules/git.js +78 -0
- package/dist/modules/git.js.map +1 -0
- package/dist/modules/permissions.d.ts +5 -0
- package/dist/modules/permissions.d.ts.map +1 -0
- package/dist/modules/permissions.js +42 -0
- package/dist/modules/permissions.js.map +1 -0
- package/dist/modules/websocket.d.ts +17 -0
- package/dist/modules/websocket.d.ts.map +1 -0
- package/dist/modules/websocket.js +80 -0
- package/dist/modules/websocket.js.map +1 -0
- package/dist/types/index.d.ts +186 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +40 -0
- package/dist/types/index.js.map +1 -0
- package/dist/ui/LiveSession.d.ts +13 -0
- package/dist/ui/LiveSession.d.ts.map +1 -0
- package/dist/ui/LiveSession.js +451 -0
- package/dist/ui/LiveSession.js.map +1 -0
- package/dist/utils/detect.d.ts +3 -0
- package/dist/utils/detect.d.ts.map +1 -0
- package/dist/utils/detect.js +78 -0
- package/dist/utils/detect.js.map +1 -0
- package/dist/utils/errors.d.ts +3 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +36 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/upload.d.ts +3 -0
- package/dist/utils/upload.d.ts.map +1 -0
- package/dist/utils/upload.js +75 -0
- package/dist/utils/upload.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import prompts from 'prompts';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { AuthManager } from '../modules/auth.js';
|
|
5
|
+
import { ConfigManager } from '../modules/config.js';
|
|
6
|
+
import { ApiClient } from '../modules/api.js';
|
|
7
|
+
import { detectProjectType } from '../utils/detect.js';
|
|
8
|
+
import { createRepoZip } from '../utils/upload.js';
|
|
9
|
+
import { execSync } from 'child_process';
|
|
10
|
+
import { loginCommand } from './login.js';
|
|
11
|
+
async function getRepoUrl() {
|
|
12
|
+
try {
|
|
13
|
+
const remoteUrl = execSync('git config --get remote.origin.url', {
|
|
14
|
+
encoding: 'utf8',
|
|
15
|
+
stdio: ['pipe', 'pipe', 'ignore'],
|
|
16
|
+
}).trim();
|
|
17
|
+
// Clean up SSH URLs to HTTPS format
|
|
18
|
+
if (remoteUrl.startsWith('git@')) {
|
|
19
|
+
return remoteUrl.replace('git@github.com:', 'https://github.com/').replace('.git', '');
|
|
20
|
+
}
|
|
21
|
+
return remoteUrl.replace('.git', '');
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
return '';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export async function initCommand() {
|
|
28
|
+
const authManager = new AuthManager();
|
|
29
|
+
const configManager = new ConfigManager();
|
|
30
|
+
console.log(chalk.bold.blue('\nš CodeVF Project Initialization\n'));
|
|
31
|
+
// Check authentication - if not authenticated, prompt to login
|
|
32
|
+
if (!authManager.isAuthenticated()) {
|
|
33
|
+
console.log(chalk.yellow('ā Not authenticated.'));
|
|
34
|
+
const { shouldLogin } = await prompts({
|
|
35
|
+
type: 'confirm',
|
|
36
|
+
name: 'shouldLogin',
|
|
37
|
+
message: 'Would you like to login now?',
|
|
38
|
+
initial: true,
|
|
39
|
+
});
|
|
40
|
+
if (!shouldLogin) {
|
|
41
|
+
console.log(chalk.dim('\nInitialization cancelled. Please run "codevf login" when ready.\n'));
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
// Run login flow
|
|
45
|
+
await loginCommand();
|
|
46
|
+
// Check if login was successful
|
|
47
|
+
if (!authManager.isAuthenticated()) {
|
|
48
|
+
console.log(chalk.red('\nā Login failed or was cancelled.\n'));
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
console.log(chalk.green('\nā Login successful! Continuing with initialization...\n'));
|
|
52
|
+
}
|
|
53
|
+
// Check if already initialized
|
|
54
|
+
if (configManager.isInitialized()) {
|
|
55
|
+
console.log(chalk.yellow('ā This project is already initialized.'));
|
|
56
|
+
const { reinit } = await prompts({
|
|
57
|
+
type: 'confirm',
|
|
58
|
+
name: 'reinit',
|
|
59
|
+
message: 'Do you want to reinitialize?',
|
|
60
|
+
initial: false,
|
|
61
|
+
});
|
|
62
|
+
if (!reinit) {
|
|
63
|
+
console.log(chalk.dim('\nInitialization cancelled.\n'));
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const apiClient = new ApiClient(authManager);
|
|
68
|
+
// Ask: Link to existing project or create new one?
|
|
69
|
+
let { linkMode } = await prompts({
|
|
70
|
+
type: 'select',
|
|
71
|
+
name: 'linkMode',
|
|
72
|
+
message: 'Do you want to link to an existing project or create a new one?',
|
|
73
|
+
choices: [
|
|
74
|
+
{ title: 'Link to existing project', value: 'existing' },
|
|
75
|
+
{ title: 'Create new project', value: 'new' },
|
|
76
|
+
],
|
|
77
|
+
});
|
|
78
|
+
if (!linkMode) {
|
|
79
|
+
console.log(chalk.dim('\nInitialization cancelled.\n'));
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
let projectId;
|
|
83
|
+
let repoUrl;
|
|
84
|
+
if (linkMode === 'existing') {
|
|
85
|
+
// Fetch existing projects
|
|
86
|
+
const spinner = ora('Fetching your projects...').start();
|
|
87
|
+
try {
|
|
88
|
+
const { projects } = await apiClient.getProjects();
|
|
89
|
+
spinner.stop();
|
|
90
|
+
if (projects.length === 0) {
|
|
91
|
+
console.log(chalk.yellow('\nā You have no existing projects. Creating a new one...\n'));
|
|
92
|
+
linkMode = 'new'; // Fall through to new project creation
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
const { selectedProject } = await prompts({
|
|
96
|
+
type: 'select',
|
|
97
|
+
name: 'selectedProject',
|
|
98
|
+
message: 'Select a project to link:',
|
|
99
|
+
choices: projects.map((p) => ({
|
|
100
|
+
title: `${p.repoUrl} (ID: ${p.id})`,
|
|
101
|
+
value: p.id.toString(),
|
|
102
|
+
})),
|
|
103
|
+
});
|
|
104
|
+
if (!selectedProject) {
|
|
105
|
+
console.log(chalk.dim('\nInitialization cancelled.\n'));
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
projectId = selectedProject;
|
|
109
|
+
const selectedProjectData = projects.find((p) => p.id.toString() === selectedProject);
|
|
110
|
+
repoUrl = selectedProjectData?.repoUrl || '';
|
|
111
|
+
console.log(chalk.green(`\nā Linked to project: ${repoUrl} (ID: ${projectId})\n`));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
spinner.fail('Failed to fetch projects');
|
|
116
|
+
throw error;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (linkMode === 'new') {
|
|
120
|
+
// Create new project
|
|
121
|
+
const detectedRepoUrl = await getRepoUrl();
|
|
122
|
+
const { newRepoUrl, problemDescription } = await prompts([
|
|
123
|
+
{
|
|
124
|
+
type: 'text',
|
|
125
|
+
name: 'newRepoUrl',
|
|
126
|
+
message: 'Repository URL:',
|
|
127
|
+
initial: detectedRepoUrl,
|
|
128
|
+
validate: (value) => value.trim() ? true : 'Repository URL is required',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
type: 'text',
|
|
132
|
+
name: 'problemDescription',
|
|
133
|
+
message: 'Project description (optional):',
|
|
134
|
+
initial: '',
|
|
135
|
+
},
|
|
136
|
+
]);
|
|
137
|
+
if (!newRepoUrl) {
|
|
138
|
+
console.log(chalk.dim('\nInitialization cancelled.\n'));
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
const spinner = ora('Creating new project...').start();
|
|
142
|
+
try {
|
|
143
|
+
const { project } = await apiClient.createProject(newRepoUrl, problemDescription);
|
|
144
|
+
projectId = project.id.toString();
|
|
145
|
+
repoUrl = project.repoUrl;
|
|
146
|
+
spinner.succeed(chalk.green(`Created project: ${repoUrl} (ID: ${projectId})`));
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
spinner.fail('Failed to create project');
|
|
150
|
+
throw error;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// Detect project type
|
|
154
|
+
console.log(chalk.cyan('\nDetecting project type...'));
|
|
155
|
+
const detection = detectProjectType();
|
|
156
|
+
if (detection.type !== 'unknown') {
|
|
157
|
+
console.log(chalk.green(`ā Detected: ${detection.type} project (${detection.confidence}% confidence)`));
|
|
158
|
+
console.log(chalk.dim(` Indicators: ${detection.indicators.join(', ')}\n`));
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
console.log(chalk.yellow('ā Could not auto-detect project type\n'));
|
|
162
|
+
}
|
|
163
|
+
// Interactive wizard
|
|
164
|
+
const answers = await prompts([
|
|
165
|
+
{
|
|
166
|
+
type: 'select',
|
|
167
|
+
name: 'projectType',
|
|
168
|
+
message: 'Select your project type:',
|
|
169
|
+
choices: [
|
|
170
|
+
{ title: 'Node.js', value: 'node' },
|
|
171
|
+
{ title: 'Python', value: 'python' },
|
|
172
|
+
{ title: 'Go', value: 'go' },
|
|
173
|
+
{ title: 'Ruby', value: 'ruby' },
|
|
174
|
+
{ title: 'Java', value: 'java' },
|
|
175
|
+
{ title: 'Rust', value: 'rust' },
|
|
176
|
+
{ title: 'Other', value: 'unknown' },
|
|
177
|
+
],
|
|
178
|
+
initial: detection.type === 'unknown' ? 0 : ['node', 'python', 'go', 'ruby', 'java', 'rust'].indexOf(detection.type),
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
type: 'text',
|
|
182
|
+
name: 'testCommand',
|
|
183
|
+
message: 'Test command:',
|
|
184
|
+
initial: detection.suggestedTestCommand || '',
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
type: 'text',
|
|
188
|
+
name: 'buildCommand',
|
|
189
|
+
message: 'Build command (leave empty if not applicable):',
|
|
190
|
+
initial: detection.suggestedBuildCommand || '',
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
type: 'multiselect',
|
|
194
|
+
name: 'allowedTools',
|
|
195
|
+
message: 'Which AI tools should engineers be allowed to use?',
|
|
196
|
+
choices: [
|
|
197
|
+
{ title: 'Claude (Anthropic)', value: 'claude', selected: true },
|
|
198
|
+
{ title: 'Gemini (Google)', value: 'gemini', selected: true },
|
|
199
|
+
{ title: 'GPT (OpenAI)', value: 'gpt', selected: false },
|
|
200
|
+
{ title: 'None', value: 'none', selected: false },
|
|
201
|
+
],
|
|
202
|
+
hint: 'Space to select, Enter to confirm',
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
type: 'confirm',
|
|
206
|
+
name: 'uploadCode',
|
|
207
|
+
message: 'Upload code snapshot for faster debugging?',
|
|
208
|
+
initial: true,
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
type: 'confirm',
|
|
212
|
+
name: 'allowBranchAccess',
|
|
213
|
+
message: 'Allow engineers to access the "codevf" branch only?',
|
|
214
|
+
initial: true,
|
|
215
|
+
},
|
|
216
|
+
]);
|
|
217
|
+
// Handle cancellation
|
|
218
|
+
if (Object.keys(answers).length === 0) {
|
|
219
|
+
console.log(chalk.dim('\nInitialization cancelled.\n'));
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
// Ensure projectId is set
|
|
223
|
+
if (!projectId || !repoUrl) {
|
|
224
|
+
console.log(chalk.red('Error: Failed to get project ID. Please try again.\n'));
|
|
225
|
+
process.exit(1);
|
|
226
|
+
}
|
|
227
|
+
const spinner = ora('Finalizing project setup...').start();
|
|
228
|
+
try {
|
|
229
|
+
// Upload code if requested
|
|
230
|
+
if (answers.uploadCode) {
|
|
231
|
+
spinner.text = 'Creating code snapshot...';
|
|
232
|
+
const zipBuffer = await createRepoZip(process.cwd());
|
|
233
|
+
spinner.text = 'Uploading code snapshot...';
|
|
234
|
+
await apiClient.uploadRepoSnapshot(projectId, zipBuffer);
|
|
235
|
+
}
|
|
236
|
+
// Save config
|
|
237
|
+
const config = {
|
|
238
|
+
projectId,
|
|
239
|
+
allowedTools: answers.allowedTools.includes('none') ? [] : answers.allowedTools,
|
|
240
|
+
testCommand: answers.testCommand,
|
|
241
|
+
buildCommand: answers.buildCommand,
|
|
242
|
+
repoUploaded: answers.uploadCode,
|
|
243
|
+
branchMode: answers.allowBranchAccess ? 'codevf' : 'all',
|
|
244
|
+
createdAt: new Date().toISOString(),
|
|
245
|
+
version: '1',
|
|
246
|
+
};
|
|
247
|
+
configManager.saveConfig(config);
|
|
248
|
+
spinner.succeed(chalk.green('Project initialized successfully!'));
|
|
249
|
+
// Print summary
|
|
250
|
+
console.log(chalk.bold('\nš Configuration Summary:'));
|
|
251
|
+
console.log(chalk.dim('ā'.repeat(60)));
|
|
252
|
+
console.log(`${chalk.cyan('Project ID:')} ${config.projectId}`);
|
|
253
|
+
console.log(`${chalk.cyan('Repository:')} ${repoUrl}`);
|
|
254
|
+
console.log(`${chalk.cyan('Project Type:')} ${answers.projectType}`);
|
|
255
|
+
console.log(`${chalk.cyan('Test Command:')} ${config.testCommand || chalk.dim('(none)')}`);
|
|
256
|
+
console.log(`${chalk.cyan('Build Command:')} ${config.buildCommand || chalk.dim('(none)')}`);
|
|
257
|
+
console.log(`${chalk.cyan('Allowed Tools:')} ${config.allowedTools.length > 0 ? config.allowedTools.join(', ') : chalk.dim('none')}`);
|
|
258
|
+
console.log(`${chalk.cyan('Code Uploaded:')} ${config.repoUploaded ? 'Yes' : 'No'}`);
|
|
259
|
+
console.log(`${chalk.cyan('Branch Mode:')} ${config.branchMode}`);
|
|
260
|
+
console.log(chalk.dim('ā'.repeat(60)));
|
|
261
|
+
console.log(chalk.dim('\nNext steps:'));
|
|
262
|
+
console.log(chalk.dim(' ⢠Start a debug session: codevf'));
|
|
263
|
+
console.log(chalk.dim(' ⢠Sync your changes: codevf sync\n'));
|
|
264
|
+
}
|
|
265
|
+
catch (error) {
|
|
266
|
+
spinner.fail('Initialization failed');
|
|
267
|
+
throw error;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,QAAQ,CAAC,oCAAoC,EAAE;YAC/D,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;SAClC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,oCAAoC;QACpC,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,OAAO,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,OAAO,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAErE,+DAA+D;IAC/D,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAClD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,OAAO,CAAC;YACpC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,8BAA8B;YACvC,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC,CAAC;YAC9F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,iBAAiB;QACjB,MAAM,YAAY,EAAE,CAAC;QAErB,gCAAgC;QAChC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,+BAA+B;IAC/B,IAAI,aAAa,CAAC,aAAa,EAAE,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACpE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;YAC/B,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,8BAA8B;YACvC,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC;IAE7C,mDAAmD;IACnD,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC;QAC/B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,iEAAiE;QAC1E,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,UAAU,EAAE;YACxD,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE;SAC9C;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IAED,IAAI,SAA6B,CAAC;IAClC,IAAI,OAA2B,CAAC;IAEhC,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,0BAA0B;QAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC;YACnD,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4DAA4D,CAAC,CAAC,CAAC;gBACxF,QAAQ,GAAG,KAAK,CAAC,CAAC,uCAAuC;YAC3D,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,OAAO,CAAC;oBACxC,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,2BAA2B;oBACpC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;wBACjC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,EAAE,GAAG;wBACnC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE;qBACvB,CAAC,CAAC;iBACJ,CAAC,CAAC;gBAEH,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;oBACxD,OAAO;gBACT,CAAC;gBAED,SAAS,GAAG,eAAe,CAAC;gBAC5B,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,eAAe,CAAC,CAAC;gBAC3F,OAAO,GAAG,mBAAmB,EAAE,OAAO,IAAI,EAAE,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,OAAO,SAAS,SAAS,KAAK,CAAC,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACzC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,qBAAqB;QACrB,MAAM,eAAe,GAAG,MAAM,UAAU,EAAE,CAAC;QAE3C,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,MAAM,OAAO,CAAC;YACvD;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,iBAAiB;gBAC1B,OAAO,EAAE,eAAe;gBACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B;aACxE;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,iCAAiC;gBAC1C,OAAO,EAAE,EAAE;aACZ;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;YAClF,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;YAClC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,OAAO,SAAS,SAAS,GAAG,CAAC,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACzC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;IAEtC,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,eAAe,SAAS,CAAC,IAAI,aAAa,SAAS,CAAC,UAAU,eAAe,CAAC,CAC3F,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,qBAAqB;IACrB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC;QAC5B;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,2BAA2B;YACpC,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE;gBACnC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACpC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC5B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;gBAChC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;gBAChC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;gBAChC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;aACrC;YACD,OAAO,EAAE,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;SACrH;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,SAAS,CAAC,oBAAoB,IAAI,EAAE;SAC9C;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,gDAAgD;YACzD,OAAO,EAAE,SAAS,CAAC,qBAAqB,IAAI,EAAE;SAC/C;QACD;YACE,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,oDAAoD;YAC7D,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChE,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC7D,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;gBACxD,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;aAClD;YACD,IAAI,EAAE,mCAAmC;SAC1C;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,4CAA4C;YACrD,OAAO,EAAE,IAAI;SACd;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,qDAAqD;YAC9D,OAAO,EAAE,IAAI;SACd;KACF,CAAC,CAAC;IAEH,sBAAsB;IACtB,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,6BAA6B,CAAC,CAAC,KAAK,EAAE,CAAC;IAE3D,IAAI,CAAC;QACH,2BAA2B;QAC3B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,GAAG,2BAA2B,CAAC;YAC3C,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAErD,OAAO,CAAC,IAAI,GAAG,4BAA4B,CAAC;YAC5C,MAAM,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3D,CAAC;QAED,cAAc;QACd,MAAM,MAAM,GAAW;YACrB,SAAS;YACT,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY;YAC/E,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,YAAY,EAAE,OAAO,CAAC,UAAU;YAChC,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;YACxD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO,EAAE,GAAG;SACb,CAAC;QAEF,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAElE,gBAAgB;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3F,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CACT,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CACzH,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACtC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAOA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAmElD"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import open from 'open';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { AuthManager } from '../modules/auth.js';
|
|
5
|
+
import { ApiClient } from '../modules/api.js';
|
|
6
|
+
export async function loginCommand() {
|
|
7
|
+
const authManager = new AuthManager();
|
|
8
|
+
const apiClient = new ApiClient(authManager);
|
|
9
|
+
console.log(chalk.bold.blue('\nš CodeVF Login\n'));
|
|
10
|
+
// Check if already logged in
|
|
11
|
+
if (authManager.isAuthenticated()) {
|
|
12
|
+
console.log(chalk.green('ā Already logged in!'));
|
|
13
|
+
console.log(chalk.dim('\nTo logout, run: codevf logout'));
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const spinner = ora('Initializing authentication...').start();
|
|
17
|
+
try {
|
|
18
|
+
// Initialize OAuth flow
|
|
19
|
+
const { authUrl, pollToken } = await apiClient.initAuth();
|
|
20
|
+
spinner.stop();
|
|
21
|
+
console.log(chalk.cyan('\nOpening browser for authentication...'));
|
|
22
|
+
console.log(chalk.dim(`If browser doesn't open, visit: ${authUrl}\n`));
|
|
23
|
+
// Open browser
|
|
24
|
+
await open(authUrl);
|
|
25
|
+
// Poll for token
|
|
26
|
+
const pollSpinner = ora('Waiting for authentication...').start();
|
|
27
|
+
let attempts = 0;
|
|
28
|
+
const maxAttempts = 60; // 5 minutes (60 * 5 seconds)
|
|
29
|
+
while (attempts < maxAttempts) {
|
|
30
|
+
try {
|
|
31
|
+
const authData = await apiClient.pollAuth(pollToken);
|
|
32
|
+
// Calculate expiration time
|
|
33
|
+
const expiresAt = new Date();
|
|
34
|
+
expiresAt.setSeconds(expiresAt.getSeconds() + authData.expiresIn);
|
|
35
|
+
// Save token
|
|
36
|
+
const token = {
|
|
37
|
+
accessToken: authData.accessToken,
|
|
38
|
+
refreshToken: authData.refreshToken,
|
|
39
|
+
expiresAt: expiresAt.toISOString(),
|
|
40
|
+
userId: 'user-id', // This should come from the API
|
|
41
|
+
};
|
|
42
|
+
authManager.saveToken(token);
|
|
43
|
+
pollSpinner.succeed(chalk.green('Authentication successful!'));
|
|
44
|
+
console.log(chalk.dim('\nYou can now use CodeVF CLI commands.'));
|
|
45
|
+
console.log(chalk.dim('Next step: Run "codevf init" in your project directory.\n'));
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
// Continue polling
|
|
50
|
+
attempts++;
|
|
51
|
+
await new Promise((resolve) => setTimeout(resolve, 5000));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
pollSpinner.fail('Authentication timeout. Please try again.');
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
spinner.fail('Authentication failed');
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC;IAE7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAEpD,6BAA6B;IAC7B,IAAI,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE9D,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC1D,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,OAAO,IAAI,CAAC,CAAC,CAAC;QAEvE,eAAe;QACf,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpB,iBAAiB;QACjB,MAAM,WAAW,GAAG,GAAG,CAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC;QAEjE,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,6BAA6B;QAErD,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAErD,4BAA4B;gBAC5B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC7B,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAElE,aAAa;gBACb,MAAM,KAAK,GAAc;oBACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,YAAY,EAAE,QAAQ,CAAC,YAAY;oBACnC,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;oBAClC,MAAM,EAAE,SAAS,EAAE,gCAAgC;iBACpD,CAAC;gBAEF,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC7B,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBAE/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC,CAAC;gBACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC,CAAC;gBACpF,OAAO;YACT,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,mBAAmB;gBACnB,QAAQ,EAAE,CAAC;gBACX,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,WAAW,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACtC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAGA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAanD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { AuthManager } from '../modules/auth.js';
|
|
3
|
+
export async function logoutCommand() {
|
|
4
|
+
const authManager = new AuthManager();
|
|
5
|
+
console.log(chalk.bold.blue('\nš CodeVF Logout\n'));
|
|
6
|
+
if (!authManager.isAuthenticated()) {
|
|
7
|
+
console.log(chalk.yellow('Not currently logged in.'));
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
authManager.clearToken();
|
|
11
|
+
console.log(chalk.green('ā Successfully logged out'));
|
|
12
|
+
console.log(chalk.dim('\nTo login again, run: codevf login\n'));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=logout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAErD,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,WAAW,CAAC,UAAU,EAAE,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAQA,wBAAsB,WAAW,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAqGlF"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import ora from 'ora';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { AuthManager } from '../modules/auth.js';
|
|
4
|
+
import { ConfigManager } from '../modules/config.js';
|
|
5
|
+
import { ApiClient } from '../modules/api.js';
|
|
6
|
+
import { GitManager } from '../modules/git.js';
|
|
7
|
+
export async function syncCommand(options = {}) {
|
|
8
|
+
const authManager = new AuthManager();
|
|
9
|
+
const configManager = new ConfigManager();
|
|
10
|
+
const gitManager = new GitManager();
|
|
11
|
+
console.log(chalk.bold.blue('\nš CodeVF Sync\n'));
|
|
12
|
+
// Check authentication
|
|
13
|
+
if (!authManager.isAuthenticated()) {
|
|
14
|
+
console.log(chalk.red('Error: Not authenticated.'));
|
|
15
|
+
console.log(chalk.yellow('Please run: codevf login\n'));
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
// Check if project is initialized
|
|
19
|
+
if (!configManager.isInitialized()) {
|
|
20
|
+
console.log(chalk.red('Error: No CodeVF project found.'));
|
|
21
|
+
console.log(chalk.yellow('Please run: codevf init\n'));
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
const config = configManager.loadConfig();
|
|
25
|
+
// Check if git repo
|
|
26
|
+
if (!(await gitManager.isGitRepo())) {
|
|
27
|
+
console.log(chalk.red('Error: Not a git repository.'));
|
|
28
|
+
console.log(chalk.yellow('Please initialize git first: git init\n'));
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
const spinner = ora('Checking git status...').start();
|
|
32
|
+
try {
|
|
33
|
+
// Check for uncommitted changes
|
|
34
|
+
const hasChanges = await gitManager.hasUncommittedChanges();
|
|
35
|
+
if (hasChanges && !options.force) {
|
|
36
|
+
spinner.fail('Working directory has uncommitted changes');
|
|
37
|
+
console.log(chalk.yellow('\nPlease commit or stash your changes before syncing.'));
|
|
38
|
+
console.log(chalk.dim('\nTo commit changes:'));
|
|
39
|
+
console.log(chalk.dim(' git add .'));
|
|
40
|
+
console.log(chalk.dim(' git commit -m "Your message"'));
|
|
41
|
+
console.log(chalk.dim('\nOr use --force to sync anyway (not recommended)\n'));
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
// Check current branch
|
|
45
|
+
const currentBranch = await gitManager.getCurrentBranch();
|
|
46
|
+
const expectedBranch = config.branchMode;
|
|
47
|
+
if (currentBranch !== expectedBranch && config.branchMode !== 'all') {
|
|
48
|
+
spinner.warn(`Not on ${expectedBranch} branch (currently on ${currentBranch})`);
|
|
49
|
+
console.log(chalk.yellow(`\nPlease switch to the '${expectedBranch}' branch.`));
|
|
50
|
+
console.log(chalk.dim('\nTo create and switch:'));
|
|
51
|
+
console.log(chalk.dim(` git checkout -b ${expectedBranch}`));
|
|
52
|
+
console.log(chalk.dim('\nOr to switch if it exists:'));
|
|
53
|
+
console.log(chalk.dim(` git checkout ${expectedBranch}\n`));
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
// Get commit hash
|
|
57
|
+
spinner.text = 'Getting commit information...';
|
|
58
|
+
const commitHash = await gitManager.getCommitHash();
|
|
59
|
+
if (!commitHash) {
|
|
60
|
+
spinner.fail('No commits found');
|
|
61
|
+
console.log(chalk.yellow('\nPlease make at least one commit before syncing.\n'));
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
// Sync with backend
|
|
65
|
+
spinner.text = 'Syncing with CodeVF...';
|
|
66
|
+
const apiClient = new ApiClient(authManager);
|
|
67
|
+
const syncRequest = {
|
|
68
|
+
projectId: config.projectId,
|
|
69
|
+
commitHash,
|
|
70
|
+
branch: currentBranch,
|
|
71
|
+
};
|
|
72
|
+
await apiClient.syncProject(syncRequest);
|
|
73
|
+
// Save last sync
|
|
74
|
+
const lastSync = {
|
|
75
|
+
timestamp: new Date().toISOString(),
|
|
76
|
+
commitHash,
|
|
77
|
+
branch: currentBranch,
|
|
78
|
+
};
|
|
79
|
+
configManager.saveLastSync(lastSync);
|
|
80
|
+
spinner.succeed(chalk.green('Sync completed successfully!'));
|
|
81
|
+
console.log(chalk.dim('\nā'.repeat(60)));
|
|
82
|
+
console.log(`${chalk.cyan('Branch:')} ${currentBranch}`);
|
|
83
|
+
console.log(`${chalk.cyan('Commit:')} ${commitHash.substring(0, 8)}`);
|
|
84
|
+
console.log(`${chalk.cyan('Synced at:')} ${new Date().toLocaleString()}`);
|
|
85
|
+
console.log(chalk.dim('ā'.repeat(60)));
|
|
86
|
+
console.log(chalk.dim('\nEngineers can now access your latest changes.\n'));
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
spinner.fail('Sync failed');
|
|
90
|
+
throw error;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/commands/tasks.ts"],"names":[],"mappings":"AAKA,wBAAsB,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CnE"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { AuthManager } from '../modules/auth.js';
|
|
3
|
+
import { ApiClient } from '../modules/api.js';
|
|
4
|
+
import { handleError } from '../utils/errors.js';
|
|
5
|
+
export async function tasksCommand(cancelId) {
|
|
6
|
+
try {
|
|
7
|
+
const authManager = new AuthManager();
|
|
8
|
+
if (!authManager.isAuthenticated()) {
|
|
9
|
+
console.log(chalk.red('Error: Not authenticated.'));
|
|
10
|
+
console.log(chalk.yellow('Please run: codevf login\n'));
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const apiClient = new ApiClient(authManager);
|
|
14
|
+
// Fetch tasks directly since the API wrapper listTasks was removed
|
|
15
|
+
const response = await apiClient['client'].get(`/api/cli/tasks/list`);
|
|
16
|
+
const { tasks } = response.data || { tasks: [] };
|
|
17
|
+
if (cancelId) {
|
|
18
|
+
const target = tasks.find((t) => t.id === cancelId);
|
|
19
|
+
if (!target) {
|
|
20
|
+
console.log(chalk.red(`Task ${cancelId} not found in open tasks.`));
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
await apiClient.cancelTask(cancelId);
|
|
24
|
+
console.log(chalk.green(`ā Cancelled task ${cancelId}`));
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (!tasks || tasks.length === 0) {
|
|
28
|
+
console.log(chalk.dim('No open tasks.'));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
console.log(chalk.bold.blue('\nOpen Tasks\n'));
|
|
32
|
+
tasks.forEach((task) => {
|
|
33
|
+
console.log(`${chalk.white(task.id)} ${chalk.gray('-')} ${chalk.white(task.issueDescription || 'Unknown')}`);
|
|
34
|
+
console.log(chalk.dim(` status: ${task.status} | project: ${task.projectId} | created: ${task.createdAt || 'n/a'}`));
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
handleError(error);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=tasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/commands/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAiB;IAClD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC;QAE7C,mEAAmE;QACnE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACtE,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAEjD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,QAAQ,2BAA2B,CAAC,CAAC,CAAC;gBACpE,OAAO;YACT,CAAC;YACD,MAAM,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;YAC1B,OAAO,CAAC,GAAG,CACT,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,SAAS,CAAC,EAAE,CAChG,CAAC;YACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,aAAa,IAAI,CAAC,MAAM,eAAe,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,SAAS,IAAI,KAAK,EAAE,CAC9F,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAGA,OAAO,eAAe,CAAC"}
|