vigthoria-cli 1.0.2 ā 1.3.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/README.md +122 -8
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +14 -5
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/deploy.d.ts +80 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +514 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/hub.d.ts +40 -0
- package/dist/commands/hub.d.ts.map +1 -0
- package/dist/commands/hub.js +289 -0
- package/dist/commands/hub.js.map +1 -0
- package/dist/commands/repo.d.ts +80 -0
- package/dist/commands/repo.d.ts.map +1 -0
- package/dist/commands/repo.js +585 -0
- package/dist/commands/repo.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +302 -4
- package/dist/index.js.map +1 -1
- package/dist/utils/api.d.ts.map +1 -1
- package/dist/utils/api.js +37 -27
- package/dist/utils/api.js.map +1 -1
- package/dist/utils/tools.d.ts +6 -0
- package/dist/utils/tools.d.ts.map +1 -1
- package/dist/utils/tools.js +269 -15
- package/dist/utils/tools.js.map +1 -1
- package/package.json +5 -2
- package/src/commands/config.ts +14 -5
- package/src/commands/deploy.ts +609 -0
- package/src/commands/hub.ts +382 -0
- package/src/commands/repo.ts +701 -0
- package/src/index.ts +343 -4
- package/src/utils/api.ts +44 -28
- package/src/utils/tools.ts +283 -16
|
@@ -0,0 +1,585 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Vigthoria CLI - Repo Commands
|
|
4
|
+
*
|
|
5
|
+
* Push and pull projects to/from Vigthoria Repository
|
|
6
|
+
* Enables version control and project sharing through the Vigthoria platform
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* vigthoria repo push [path] - Push current/specified project to Vigthoria Repo
|
|
10
|
+
* vigthoria repo pull <name> - Pull a project from your Vigthoria Repo
|
|
11
|
+
* vigthoria repo list - List all your projects in Vigthoria Repo
|
|
12
|
+
* vigthoria repo status - Show sync status of current project
|
|
13
|
+
* vigthoria repo share <name> - Generate shareable link for a project
|
|
14
|
+
* vigthoria repo delete <name> - Remove a project from your Vigthoria Repo
|
|
15
|
+
*/
|
|
16
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
19
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
20
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
21
|
+
}
|
|
22
|
+
Object.defineProperty(o, k2, desc);
|
|
23
|
+
}) : (function(o, m, k, k2) {
|
|
24
|
+
if (k2 === undefined) k2 = k;
|
|
25
|
+
o[k2] = m[k];
|
|
26
|
+
}));
|
|
27
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
28
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
29
|
+
}) : function(o, v) {
|
|
30
|
+
o["default"] = v;
|
|
31
|
+
});
|
|
32
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
33
|
+
var ownKeys = function(o) {
|
|
34
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
35
|
+
var ar = [];
|
|
36
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
37
|
+
return ar;
|
|
38
|
+
};
|
|
39
|
+
return ownKeys(o);
|
|
40
|
+
};
|
|
41
|
+
return function (mod) {
|
|
42
|
+
if (mod && mod.__esModule) return mod;
|
|
43
|
+
var result = {};
|
|
44
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
45
|
+
__setModuleDefault(result, mod);
|
|
46
|
+
return result;
|
|
47
|
+
};
|
|
48
|
+
})();
|
|
49
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
+
};
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
exports.RepoCommand = void 0;
|
|
54
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
55
|
+
const fs = __importStar(require("fs"));
|
|
56
|
+
const path = __importStar(require("path"));
|
|
57
|
+
const ora_1 = __importDefault(require("ora"));
|
|
58
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
59
|
+
const archiver_1 = __importDefault(require("archiver"));
|
|
60
|
+
const fs_1 = require("fs");
|
|
61
|
+
class RepoCommand {
|
|
62
|
+
config;
|
|
63
|
+
logger;
|
|
64
|
+
apiBase;
|
|
65
|
+
constructor(config, logger) {
|
|
66
|
+
this.config = config;
|
|
67
|
+
this.logger = logger;
|
|
68
|
+
this.apiBase = this.config.get('apiUrl') || 'https://coder.vigthoria.io';
|
|
69
|
+
}
|
|
70
|
+
getAuthHeaders() {
|
|
71
|
+
const token = this.config.get('authToken');
|
|
72
|
+
return {
|
|
73
|
+
'Authorization': `Bearer ${token}`,
|
|
74
|
+
'Content-Type': 'application/json'
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
isAuthenticated() {
|
|
78
|
+
const token = this.config.get('authToken');
|
|
79
|
+
return !!token;
|
|
80
|
+
}
|
|
81
|
+
requireAuth() {
|
|
82
|
+
if (!this.isAuthenticated()) {
|
|
83
|
+
console.log(chalk_1.default.red('\nā Authentication required. Run: vigthoria login\n'));
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Detect project info from package.json, requirements.txt, etc.
|
|
89
|
+
*/
|
|
90
|
+
detectProjectInfo(projectPath) {
|
|
91
|
+
let name = path.basename(projectPath);
|
|
92
|
+
let description = '';
|
|
93
|
+
const techStack = [];
|
|
94
|
+
// Check package.json (Node.js)
|
|
95
|
+
const packageJsonPath = path.join(projectPath, 'package.json');
|
|
96
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
97
|
+
try {
|
|
98
|
+
const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
99
|
+
name = pkg.name || name;
|
|
100
|
+
description = pkg.description || '';
|
|
101
|
+
techStack.push('Node.js');
|
|
102
|
+
// Detect frameworks from dependencies
|
|
103
|
+
const deps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
104
|
+
if (deps.express)
|
|
105
|
+
techStack.push('Express');
|
|
106
|
+
if (deps.react)
|
|
107
|
+
techStack.push('React');
|
|
108
|
+
if (deps.vue)
|
|
109
|
+
techStack.push('Vue');
|
|
110
|
+
if (deps.next)
|
|
111
|
+
techStack.push('Next.js');
|
|
112
|
+
if (deps.typescript)
|
|
113
|
+
techStack.push('TypeScript');
|
|
114
|
+
if (deps.sqlite3 || deps['better-sqlite3'])
|
|
115
|
+
techStack.push('SQLite');
|
|
116
|
+
if (deps.stripe)
|
|
117
|
+
techStack.push('Stripe');
|
|
118
|
+
}
|
|
119
|
+
catch (e) {
|
|
120
|
+
// Ignore parse errors
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// Check requirements.txt (Python)
|
|
124
|
+
const requirementsPath = path.join(projectPath, 'requirements.txt');
|
|
125
|
+
if (fs.existsSync(requirementsPath)) {
|
|
126
|
+
techStack.push('Python');
|
|
127
|
+
const content = fs.readFileSync(requirementsPath, 'utf8').toLowerCase();
|
|
128
|
+
if (content.includes('flask'))
|
|
129
|
+
techStack.push('Flask');
|
|
130
|
+
if (content.includes('django'))
|
|
131
|
+
techStack.push('Django');
|
|
132
|
+
if (content.includes('fastapi'))
|
|
133
|
+
techStack.push('FastAPI');
|
|
134
|
+
if (content.includes('torch') || content.includes('pytorch'))
|
|
135
|
+
techStack.push('PyTorch');
|
|
136
|
+
if (content.includes('tensorflow'))
|
|
137
|
+
techStack.push('TensorFlow');
|
|
138
|
+
}
|
|
139
|
+
// Check Cargo.toml (Rust)
|
|
140
|
+
if (fs.existsSync(path.join(projectPath, 'Cargo.toml'))) {
|
|
141
|
+
techStack.push('Rust');
|
|
142
|
+
}
|
|
143
|
+
// Check go.mod (Go)
|
|
144
|
+
if (fs.existsSync(path.join(projectPath, 'go.mod'))) {
|
|
145
|
+
techStack.push('Go');
|
|
146
|
+
}
|
|
147
|
+
return { name, description, techStack: [...new Set(techStack)] };
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Create a zip archive of a project
|
|
151
|
+
*/
|
|
152
|
+
async createProjectArchive(projectPath) {
|
|
153
|
+
const tempDir = path.join(require('os').tmpdir(), 'vigthoria-cli');
|
|
154
|
+
if (!fs.existsSync(tempDir)) {
|
|
155
|
+
fs.mkdirSync(tempDir, { recursive: true });
|
|
156
|
+
}
|
|
157
|
+
const archivePath = path.join(tempDir, `project-${Date.now()}.zip`);
|
|
158
|
+
const output = (0, fs_1.createWriteStream)(archivePath);
|
|
159
|
+
const archive = (0, archiver_1.default)('zip', { zlib: { level: 9 } });
|
|
160
|
+
return new Promise((resolve, reject) => {
|
|
161
|
+
output.on('close', () => resolve(archivePath));
|
|
162
|
+
archive.on('error', (err) => reject(err));
|
|
163
|
+
archive.pipe(output);
|
|
164
|
+
// Ignore patterns
|
|
165
|
+
const ignorePatterns = [
|
|
166
|
+
'node_modules/**',
|
|
167
|
+
'.git/**',
|
|
168
|
+
'dist/**',
|
|
169
|
+
'build/**',
|
|
170
|
+
'__pycache__/**',
|
|
171
|
+
'.venv/**',
|
|
172
|
+
'venv/**',
|
|
173
|
+
'*.log',
|
|
174
|
+
'.env',
|
|
175
|
+
'.DS_Store'
|
|
176
|
+
];
|
|
177
|
+
archive.glob('**/*', {
|
|
178
|
+
cwd: projectPath,
|
|
179
|
+
ignore: ignorePatterns,
|
|
180
|
+
dot: true
|
|
181
|
+
});
|
|
182
|
+
archive.finalize();
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Push a project to Vigthoria Repository
|
|
187
|
+
*/
|
|
188
|
+
async push(options = {}) {
|
|
189
|
+
this.requireAuth();
|
|
190
|
+
const projectPath = options.path ? path.resolve(options.path) : process.cwd();
|
|
191
|
+
if (!fs.existsSync(projectPath)) {
|
|
192
|
+
console.log(chalk_1.default.red(`\nā Path does not exist: ${projectPath}\n`));
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
const spinner = (0, ora_1.default)('Analyzing project...').start();
|
|
196
|
+
try {
|
|
197
|
+
const projectInfo = this.detectProjectInfo(projectPath);
|
|
198
|
+
spinner.succeed(`Project detected: ${chalk_1.default.cyan(projectInfo.name)}`);
|
|
199
|
+
console.log(chalk_1.default.gray(`\n š Path: ${projectPath}`));
|
|
200
|
+
console.log(chalk_1.default.gray(` š Description: ${projectInfo.description || '(none)'}`));
|
|
201
|
+
console.log(chalk_1.default.gray(` š§ Tech Stack: ${projectInfo.techStack.join(', ') || 'Unknown'}`));
|
|
202
|
+
console.log();
|
|
203
|
+
// Ask for confirmation and additional info
|
|
204
|
+
const answers = await inquirer_1.default.prompt([
|
|
205
|
+
{
|
|
206
|
+
type: 'input',
|
|
207
|
+
name: 'name',
|
|
208
|
+
message: 'Project name:',
|
|
209
|
+
default: projectInfo.name
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
type: 'input',
|
|
213
|
+
name: 'description',
|
|
214
|
+
message: 'Description:',
|
|
215
|
+
default: options.description || projectInfo.description
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
type: 'list',
|
|
219
|
+
name: 'visibility',
|
|
220
|
+
message: 'Visibility:',
|
|
221
|
+
choices: [
|
|
222
|
+
{ name: 'Private - Only you can access', value: 'private' },
|
|
223
|
+
{ name: 'Restricted - Invite only', value: 'restricted' },
|
|
224
|
+
{ name: 'Public - Anyone can view', value: 'public' }
|
|
225
|
+
],
|
|
226
|
+
default: options.visibility || 'private'
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
type: 'confirm',
|
|
230
|
+
name: 'confirm',
|
|
231
|
+
message: 'Push project to Vigthoria Repo?',
|
|
232
|
+
default: true
|
|
233
|
+
}
|
|
234
|
+
]);
|
|
235
|
+
if (!answers.confirm) {
|
|
236
|
+
console.log(chalk_1.default.yellow('\nā ļø Push cancelled.\n'));
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
const uploadSpinner = (0, ora_1.default)('Creating project archive...').start();
|
|
240
|
+
// Create archive
|
|
241
|
+
const archivePath = await this.createProjectArchive(projectPath);
|
|
242
|
+
uploadSpinner.text = 'Uploading to Vigthoria Repo...';
|
|
243
|
+
// First, register/update the project
|
|
244
|
+
const registerResponse = await fetch(`${this.apiBase}/api/repo/push`, {
|
|
245
|
+
method: 'POST',
|
|
246
|
+
headers: this.getAuthHeaders(),
|
|
247
|
+
body: JSON.stringify({
|
|
248
|
+
projectName: answers.name,
|
|
249
|
+
projectPath: projectPath,
|
|
250
|
+
description: answers.description,
|
|
251
|
+
techStack: projectInfo.techStack.join(', '),
|
|
252
|
+
visibility: answers.visibility,
|
|
253
|
+
force: options.force || false
|
|
254
|
+
})
|
|
255
|
+
});
|
|
256
|
+
if (!registerResponse.ok) {
|
|
257
|
+
const error = await registerResponse.json();
|
|
258
|
+
throw new Error(error.error || 'Failed to register project');
|
|
259
|
+
}
|
|
260
|
+
const registerData = await registerResponse.json();
|
|
261
|
+
// Upload the archive if there's an upload URL
|
|
262
|
+
if (registerData.uploadUrl) {
|
|
263
|
+
const archiveBuffer = fs.readFileSync(archivePath);
|
|
264
|
+
const uploadResponse = await fetch(registerData.uploadUrl, {
|
|
265
|
+
method: 'PUT',
|
|
266
|
+
headers: {
|
|
267
|
+
...this.getAuthHeaders(),
|
|
268
|
+
'Content-Type': 'application/zip'
|
|
269
|
+
},
|
|
270
|
+
body: archiveBuffer
|
|
271
|
+
});
|
|
272
|
+
if (!uploadResponse.ok) {
|
|
273
|
+
throw new Error('Failed to upload project archive');
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
// Clean up temp archive
|
|
277
|
+
fs.unlinkSync(archivePath);
|
|
278
|
+
uploadSpinner.succeed(chalk_1.default.green('Project pushed successfully!'));
|
|
279
|
+
console.log(chalk_1.default.cyan('\nš¦ Project Details:'));
|
|
280
|
+
console.log(chalk_1.default.gray(` Name: ${registerData.project.project_name}`));
|
|
281
|
+
console.log(chalk_1.default.gray(` Visibility: ${registerData.project.visibility}`));
|
|
282
|
+
console.log(chalk_1.default.gray(` ID: ${registerData.project.id}`));
|
|
283
|
+
if (registerData.project.visibility === 'public') {
|
|
284
|
+
console.log(chalk_1.default.cyan(`\nš Public URL: https://coder.vigthoria.io/preview/${registerData.project.id}`));
|
|
285
|
+
}
|
|
286
|
+
console.log(chalk_1.default.gray('\nTip: Use `vigthoria repo pull <name>` to restore this project anywhere.\n'));
|
|
287
|
+
}
|
|
288
|
+
catch (error) {
|
|
289
|
+
spinner.fail('Push failed');
|
|
290
|
+
const errMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
291
|
+
console.log(chalk_1.default.red(`\nā Error: ${errMsg}\n`));
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Pull a project from Vigthoria Repository
|
|
296
|
+
*/
|
|
297
|
+
async pull(projectName, options = {}) {
|
|
298
|
+
this.requireAuth();
|
|
299
|
+
const spinner = (0, ora_1.default)(`Fetching project: ${projectName}...`).start();
|
|
300
|
+
try {
|
|
301
|
+
const response = await fetch(`${this.apiBase}/api/repo/pull/${encodeURIComponent(projectName)}`, {
|
|
302
|
+
method: 'GET',
|
|
303
|
+
headers: this.getAuthHeaders()
|
|
304
|
+
});
|
|
305
|
+
if (!response.ok) {
|
|
306
|
+
const error = await response.json();
|
|
307
|
+
throw new Error(error.error || 'Project not found');
|
|
308
|
+
}
|
|
309
|
+
const data = await response.json();
|
|
310
|
+
spinner.succeed(`Found project: ${chalk_1.default.cyan(data.project.project_name)}`);
|
|
311
|
+
const outputPath = options.output
|
|
312
|
+
? path.resolve(options.output)
|
|
313
|
+
: path.join(process.cwd(), data.project.project_name);
|
|
314
|
+
if (fs.existsSync(outputPath) && !options.force) {
|
|
315
|
+
const { overwrite } = await inquirer_1.default.prompt([{
|
|
316
|
+
type: 'confirm',
|
|
317
|
+
name: 'overwrite',
|
|
318
|
+
message: `Directory ${outputPath} exists. Overwrite?`,
|
|
319
|
+
default: false
|
|
320
|
+
}]);
|
|
321
|
+
if (!overwrite) {
|
|
322
|
+
console.log(chalk_1.default.yellow('\nā ļø Pull cancelled.\n'));
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
const downloadSpinner = (0, ora_1.default)('Downloading project files...').start();
|
|
327
|
+
// Create output directory
|
|
328
|
+
fs.mkdirSync(outputPath, { recursive: true });
|
|
329
|
+
// If we have a download URL, fetch and extract
|
|
330
|
+
if (data.downloadUrl) {
|
|
331
|
+
const archiveResponse = await fetch(data.downloadUrl, {
|
|
332
|
+
headers: this.getAuthHeaders()
|
|
333
|
+
});
|
|
334
|
+
if (!archiveResponse.ok) {
|
|
335
|
+
throw new Error('Failed to download project archive');
|
|
336
|
+
}
|
|
337
|
+
// Save and extract the archive
|
|
338
|
+
const tempArchive = path.join(require('os').tmpdir(), `vigthoria-pull-${Date.now()}.zip`);
|
|
339
|
+
const archiveBuffer = Buffer.from(await archiveResponse.arrayBuffer());
|
|
340
|
+
fs.writeFileSync(tempArchive, archiveBuffer);
|
|
341
|
+
// Extract using unzip command or adm-zip
|
|
342
|
+
const { execSync } = await import('child_process');
|
|
343
|
+
execSync(`unzip -o "${tempArchive}" -d "${outputPath}"`, { stdio: 'ignore' });
|
|
344
|
+
fs.unlinkSync(tempArchive);
|
|
345
|
+
}
|
|
346
|
+
else if (data.files) {
|
|
347
|
+
// If we have files inline (small projects)
|
|
348
|
+
for (const file of data.files) {
|
|
349
|
+
const filePath = path.join(outputPath, file.path);
|
|
350
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
351
|
+
fs.writeFileSync(filePath, file.content);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
downloadSpinner.succeed(chalk_1.default.green('Project pulled successfully!'));
|
|
355
|
+
console.log(chalk_1.default.cyan('\nš Project extracted to:'));
|
|
356
|
+
console.log(chalk_1.default.white(` ${outputPath}`));
|
|
357
|
+
console.log(chalk_1.default.gray(`\n Tech Stack: ${data.project.tech_stack || 'Unknown'}`));
|
|
358
|
+
console.log(chalk_1.default.gray(` Description: ${data.project.description || '(none)'}`));
|
|
359
|
+
console.log();
|
|
360
|
+
}
|
|
361
|
+
catch (error) {
|
|
362
|
+
spinner.fail('Pull failed');
|
|
363
|
+
const errMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
364
|
+
console.log(chalk_1.default.red(`\nā Error: ${errMsg}\n`));
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* List all projects in user's Vigthoria Repository
|
|
369
|
+
*/
|
|
370
|
+
async list(options = {}) {
|
|
371
|
+
this.requireAuth();
|
|
372
|
+
const spinner = (0, ora_1.default)('Fetching your projects...').start();
|
|
373
|
+
try {
|
|
374
|
+
let url = `${this.apiBase}/api/repo/projects`;
|
|
375
|
+
if (options.visibility) {
|
|
376
|
+
url += `?visibility=${options.visibility}`;
|
|
377
|
+
}
|
|
378
|
+
const response = await fetch(url, {
|
|
379
|
+
method: 'GET',
|
|
380
|
+
headers: this.getAuthHeaders()
|
|
381
|
+
});
|
|
382
|
+
if (!response.ok) {
|
|
383
|
+
throw new Error('Failed to fetch projects');
|
|
384
|
+
}
|
|
385
|
+
const data = await response.json();
|
|
386
|
+
spinner.stop();
|
|
387
|
+
if (data.projects.length === 0) {
|
|
388
|
+
console.log(chalk_1.default.yellow('\nš¦ No projects in your Vigthoria Repo yet.\n'));
|
|
389
|
+
console.log(chalk_1.default.gray('Use `vigthoria repo push` to upload your first project.\n'));
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
console.log(chalk_1.default.cyan(`\nš¦ Your Vigthoria Repository (${data.total} project${data.total !== 1 ? 's' : ''})\n`));
|
|
393
|
+
// Group by visibility
|
|
394
|
+
const grouped = data.projects.reduce((acc, project) => {
|
|
395
|
+
const vis = project.visibility || 'private';
|
|
396
|
+
if (!acc[vis])
|
|
397
|
+
acc[vis] = [];
|
|
398
|
+
acc[vis].push(project);
|
|
399
|
+
return acc;
|
|
400
|
+
}, {});
|
|
401
|
+
const visibilityOrder = ['private', 'restricted', 'public'];
|
|
402
|
+
const visibilityIcons = {
|
|
403
|
+
private: 'š',
|
|
404
|
+
restricted: 'š„',
|
|
405
|
+
public: 'š'
|
|
406
|
+
};
|
|
407
|
+
visibilityOrder.forEach(vis => {
|
|
408
|
+
const projects = grouped[vis];
|
|
409
|
+
if (!projects || projects.length === 0)
|
|
410
|
+
return;
|
|
411
|
+
console.log(chalk_1.default.bold.white(` ${visibilityIcons[vis]} ${vis.toUpperCase()}`));
|
|
412
|
+
console.log(chalk_1.default.gray(' ' + 'ā'.repeat(50)));
|
|
413
|
+
projects.forEach((project) => {
|
|
414
|
+
const syncStatus = project.last_synced_at
|
|
415
|
+
? chalk_1.default.green('ā synced')
|
|
416
|
+
: chalk_1.default.yellow('ā not synced');
|
|
417
|
+
console.log(chalk_1.default.white(` ${project.project_name.padEnd(30)} ${syncStatus}`));
|
|
418
|
+
if (project.description) {
|
|
419
|
+
console.log(chalk_1.default.gray(` ${project.description.substring(0, 50)}${project.description.length > 50 ? '...' : ''}`));
|
|
420
|
+
}
|
|
421
|
+
console.log(chalk_1.default.gray(` Tech: ${project.tech_stack || 'Unknown'}`));
|
|
422
|
+
console.log(chalk_1.default.gray(` Updated: ${new Date(project.updated_at).toLocaleDateString()}`));
|
|
423
|
+
console.log();
|
|
424
|
+
});
|
|
425
|
+
});
|
|
426
|
+
console.log(chalk_1.default.gray('ā'.repeat(60)));
|
|
427
|
+
console.log(chalk_1.default.cyan('\nCommands:'));
|
|
428
|
+
console.log(chalk_1.default.gray(' vigthoria repo pull <name> - Download a project'));
|
|
429
|
+
console.log(chalk_1.default.gray(' vigthoria repo push - Upload current directory'));
|
|
430
|
+
console.log(chalk_1.default.gray(' vigthoria repo status - Check sync status'));
|
|
431
|
+
console.log(chalk_1.default.gray(' vigthoria repo share <name> - Share a project\n'));
|
|
432
|
+
}
|
|
433
|
+
catch (error) {
|
|
434
|
+
spinner.fail('List failed');
|
|
435
|
+
const errMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
436
|
+
console.log(chalk_1.default.red(`\nā Error: ${errMsg}\n`));
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Show sync status of current project
|
|
441
|
+
*/
|
|
442
|
+
async status() {
|
|
443
|
+
this.requireAuth();
|
|
444
|
+
const projectPath = process.cwd();
|
|
445
|
+
const projectInfo = this.detectProjectInfo(projectPath);
|
|
446
|
+
const spinner = (0, ora_1.default)('Checking sync status...').start();
|
|
447
|
+
try {
|
|
448
|
+
const response = await fetch(`${this.apiBase}/api/repo/status/${encodeURIComponent(projectInfo.name)}`, {
|
|
449
|
+
method: 'GET',
|
|
450
|
+
headers: this.getAuthHeaders()
|
|
451
|
+
});
|
|
452
|
+
if (!response.ok) {
|
|
453
|
+
spinner.succeed('Project not tracked in Vigthoria Repo');
|
|
454
|
+
console.log(chalk_1.default.yellow('\nš¦ Current project is not synced with Vigthoria Repo.\n'));
|
|
455
|
+
console.log(chalk_1.default.gray('Use `vigthoria repo push` to upload it.\n'));
|
|
456
|
+
return;
|
|
457
|
+
}
|
|
458
|
+
const data = await response.json();
|
|
459
|
+
spinner.stop();
|
|
460
|
+
const statusIcons = {
|
|
461
|
+
synced: 'ā
',
|
|
462
|
+
ahead: 'ā¬ļø',
|
|
463
|
+
behind: 'ā¬ļø',
|
|
464
|
+
diverged: 'ā ļø'
|
|
465
|
+
};
|
|
466
|
+
console.log(chalk_1.default.cyan(`\nš¦ Project: ${chalk_1.default.white(data.project.project_name)}\n`));
|
|
467
|
+
console.log(chalk_1.default.gray(` Path: ${projectPath}`));
|
|
468
|
+
console.log(chalk_1.default.gray(` Visibility: ${data.project.visibility}`));
|
|
469
|
+
console.log(chalk_1.default.gray(` Tech Stack: ${data.project.tech_stack || 'Unknown'}`));
|
|
470
|
+
console.log();
|
|
471
|
+
console.log(` Status: ${statusIcons[data.syncStatus]} ${data.syncStatus.toUpperCase()}`);
|
|
472
|
+
if (data.localChanges && data.localChanges > 0) {
|
|
473
|
+
console.log(chalk_1.default.yellow(` Local changes: ${data.localChanges} file(s) modified`));
|
|
474
|
+
}
|
|
475
|
+
console.log(chalk_1.default.gray(`\n Last synced: ${data.project.last_synced_at
|
|
476
|
+
? new Date(data.project.last_synced_at).toLocaleString()
|
|
477
|
+
: 'Never'}`));
|
|
478
|
+
console.log();
|
|
479
|
+
if (data.syncStatus === 'ahead' || data.syncStatus === 'diverged') {
|
|
480
|
+
console.log(chalk_1.default.cyan('Tip: Use `vigthoria repo push` to sync changes.\n'));
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
catch (error) {
|
|
484
|
+
spinner.fail('Status check failed');
|
|
485
|
+
const errMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
486
|
+
console.log(chalk_1.default.red(`\nā Error: ${errMsg}\n`));
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Generate a shareable link for a project
|
|
491
|
+
*/
|
|
492
|
+
async share(projectName, options = {}) {
|
|
493
|
+
this.requireAuth();
|
|
494
|
+
const spinner = (0, ora_1.default)('Generating share link...').start();
|
|
495
|
+
try {
|
|
496
|
+
const response = await fetch(`${this.apiBase}/api/repo/share`, {
|
|
497
|
+
method: 'POST',
|
|
498
|
+
headers: this.getAuthHeaders(),
|
|
499
|
+
body: JSON.stringify({
|
|
500
|
+
projectName,
|
|
501
|
+
expiresIn: options.expires || '7d'
|
|
502
|
+
})
|
|
503
|
+
});
|
|
504
|
+
if (!response.ok) {
|
|
505
|
+
const error = await response.json();
|
|
506
|
+
throw new Error(error.error || 'Failed to generate share link');
|
|
507
|
+
}
|
|
508
|
+
const data = await response.json();
|
|
509
|
+
spinner.succeed(chalk_1.default.green('Share link generated!'));
|
|
510
|
+
console.log(chalk_1.default.cyan('\nš Share Link:'));
|
|
511
|
+
console.log(chalk_1.default.white(` ${data.shareUrl}`));
|
|
512
|
+
console.log(chalk_1.default.gray(`\n Expires: ${new Date(data.expiresAt).toLocaleString()}`));
|
|
513
|
+
console.log(chalk_1.default.gray('\n Anyone with this link can view/download the project.\n'));
|
|
514
|
+
}
|
|
515
|
+
catch (error) {
|
|
516
|
+
spinner.fail('Share failed');
|
|
517
|
+
const errMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
518
|
+
console.log(chalk_1.default.red(`\nā Error: ${errMsg}\n`));
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
/**
|
|
522
|
+
* Delete a project from Vigthoria Repository
|
|
523
|
+
*/
|
|
524
|
+
async delete(projectName) {
|
|
525
|
+
this.requireAuth();
|
|
526
|
+
const { confirm } = await inquirer_1.default.prompt([{
|
|
527
|
+
type: 'confirm',
|
|
528
|
+
name: 'confirm',
|
|
529
|
+
message: chalk_1.default.red(`Are you sure you want to delete "${projectName}" from Vigthoria Repo?`),
|
|
530
|
+
default: false
|
|
531
|
+
}]);
|
|
532
|
+
if (!confirm) {
|
|
533
|
+
console.log(chalk_1.default.yellow('\nā ļø Delete cancelled.\n'));
|
|
534
|
+
return;
|
|
535
|
+
}
|
|
536
|
+
const spinner = (0, ora_1.default)('Deleting project...').start();
|
|
537
|
+
try {
|
|
538
|
+
const response = await fetch(`${this.apiBase}/api/repo/projects/${encodeURIComponent(projectName)}`, {
|
|
539
|
+
method: 'DELETE',
|
|
540
|
+
headers: this.getAuthHeaders()
|
|
541
|
+
});
|
|
542
|
+
if (!response.ok) {
|
|
543
|
+
const error = await response.json();
|
|
544
|
+
throw new Error(error.error || 'Failed to delete project');
|
|
545
|
+
}
|
|
546
|
+
spinner.succeed(chalk_1.default.green('Project deleted from Vigthoria Repo'));
|
|
547
|
+
console.log(chalk_1.default.gray('\nNote: Your local files are not affected.\n'));
|
|
548
|
+
}
|
|
549
|
+
catch (error) {
|
|
550
|
+
spinner.fail('Delete failed');
|
|
551
|
+
const errMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
552
|
+
console.log(chalk_1.default.red(`\nā Error: ${errMsg}\n`));
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
/**
|
|
556
|
+
* Clone a public project from Vigthoria Repository
|
|
557
|
+
*/
|
|
558
|
+
async clone(projectUrl, options = {}) {
|
|
559
|
+
// Parse project URL or name
|
|
560
|
+
const projectIdMatch = projectUrl.match(/preview\/(\d+)/);
|
|
561
|
+
const projectId = projectIdMatch ? projectIdMatch[1] : projectUrl;
|
|
562
|
+
const spinner = (0, ora_1.default)(`Cloning project...`).start();
|
|
563
|
+
try {
|
|
564
|
+
const response = await fetch(`${this.apiBase}/api/repo/clone/${projectId}`, {
|
|
565
|
+
method: 'GET',
|
|
566
|
+
headers: this.isAuthenticated() ? this.getAuthHeaders() : { 'Content-Type': 'application/json' }
|
|
567
|
+
});
|
|
568
|
+
if (!response.ok) {
|
|
569
|
+
const error = await response.json();
|
|
570
|
+
throw new Error(error.error || 'Project not found or not public');
|
|
571
|
+
}
|
|
572
|
+
const data = await response.json();
|
|
573
|
+
spinner.succeed(`Found project: ${chalk_1.default.cyan(data.project.project_name)}`);
|
|
574
|
+
// Use pull logic for the rest
|
|
575
|
+
await this.pull(data.project.project_name, options);
|
|
576
|
+
}
|
|
577
|
+
catch (error) {
|
|
578
|
+
spinner.fail('Clone failed');
|
|
579
|
+
const errMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
580
|
+
console.log(chalk_1.default.red(`\nā Error: ${errMsg}\n`));
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
exports.RepoCommand = RepoCommand;
|
|
585
|
+
//# sourceMappingURL=repo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo.js","sourceRoot":"","sources":["../../src/commands/repo.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG"}
|