vibefast-cli 0.3.1 → 0.4.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":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,eAAO,MAAM,WAAW,SAigBpB,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,eAAO,MAAM,WAAW,SAmpBpB,CAAC"}
@@ -25,32 +25,52 @@ export const initCommand = new Command('init')
25
25
  log.info('This directory already contains a VibeFast project.');
26
26
  process.exit(1);
27
27
  }
28
- // Step 1: Choose branch (always ask unless --branch provided)
29
- let branch = options.branch;
30
- if (!options.branch) {
31
- if (options.yes) {
32
- // Default to main if --yes is used without --branch
33
- branch = 'main';
34
- log.info('Using default: full starter');
35
- }
36
- else {
37
- // Always prompt for branch selection
38
- branch = await promptSelect('Which starter template would you like?', [
39
- {
40
- name: 'Full',
41
- value: 'main',
42
- description: 'All features included - ready to customize',
43
- },
44
- {
45
- name: 'Clean',
46
- value: 'clean',
47
- description: 'Minimal setup - add features as you need them',
48
- },
49
- ]);
28
+ // Step 1: Choose starter type
29
+ let starterType = 'clean';
30
+ let selectedFeatures = [];
31
+ if (!options.yes) {
32
+ starterType = await promptSelect('How would you like to start?', [
33
+ {
34
+ name: 'Clean',
35
+ value: 'clean',
36
+ description: 'Minimal setup - add features later with vf add',
37
+ },
38
+ {
39
+ name: 'Custom',
40
+ value: 'custom',
41
+ description: 'Choose features now - one-shot setup',
42
+ },
43
+ ]);
44
+ log.info(`Selected: ${starterType === 'clean' ? 'Clean starter' : 'Custom setup'}`);
45
+ log.plain('');
46
+ // If custom, let them choose features
47
+ if (starterType === 'custom') {
48
+ const { promptMultiSelectAsync } = await import('../core/prompt.js');
49
+ const { RECIPES, getRecipesByCategory } = await import('../core/recipes.js');
50
+ log.info('📦 Select features to include:');
51
+ log.plain('');
52
+ // Get native features
53
+ const nativeFeatures = getRecipesByCategory('feature').map(r => ({
54
+ value: r.name,
55
+ label: `${r.icon} ${r.name}`,
56
+ description: r.description,
57
+ }));
58
+ selectedFeatures = await promptMultiSelectAsync('Select features (use space to toggle, enter to confirm):', nativeFeatures);
59
+ if (selectedFeatures.length > 0) {
60
+ log.info(`Selected ${selectedFeatures.length} feature(s): ${selectedFeatures.join(', ')}`);
61
+ }
62
+ else {
63
+ log.info('No features selected - starting with clean setup');
64
+ }
65
+ log.plain('');
50
66
  }
51
67
  }
52
- log.info(`Selected: ${branch === 'main' ? 'full' : 'clean'} starter`);
53
- log.plain('');
68
+ else {
69
+ log.info('Using default: Clean starter');
70
+ log.plain('');
71
+ }
72
+ // Always use clean branch for cloning
73
+ const branch = 'clean';
54
74
  // Step 1.5: Choose platforms
55
75
  let platforms = ['native', 'web'];
56
76
  if (!options.yes) {
@@ -58,7 +78,7 @@ export const initCommand = new Command('init')
58
78
  {
59
79
  name: 'Both (Native + Web)',
60
80
  value: 'both',
61
- description: 'Full monorepo with mobile and web apps',
81
+ description: 'Full monorepo with mobile and web app',
62
82
  },
63
83
  {
64
84
  name: 'Native Only (Expo)',
@@ -108,13 +128,11 @@ export const initCommand = new Command('init')
108
128
  // 2. GitHub CLI (gh auth)
109
129
  // 3. Personal access token in URL
110
130
  const repoUrl = 'https://github.com/mzafarr/vibefast-pro.git';
111
- await withSpinner(`Cloning VibeFast monorepo (${branch === 'main' ? 'full' : 'clean'} starter)...`, async () => {
131
+ await withSpinner(`Cloning VibeFast monorepo (clean starter)...`, async () => {
112
132
  const git = simpleGit();
113
133
  const cloneOptions = ['--depth', '1'];
114
- // Only specify branch if not main (main is default)
115
- if (branch !== 'main') {
116
- cloneOptions.unshift('--branch', branch, '--single-branch');
117
- }
134
+ // Always use clean branch
135
+ cloneOptions.unshift('--branch', 'clean', '--single-branch');
118
136
  try {
119
137
  await git.clone(repoUrl, projectName, cloneOptions);
120
138
  }
@@ -321,6 +339,105 @@ export const initCommand = new Command('init')
321
339
  }
322
340
  log.plain('');
323
341
  }
342
+ // Step 6.5: Install selected features (if custom setup)
343
+ if (starterType === 'custom' && selectedFeatures.length > 0) {
344
+ log.plain('');
345
+ log.info('📦 Installing selected features...');
346
+ log.plain('');
347
+ // We need to be in the project directory for feature installation
348
+ process.chdir(projectPath);
349
+ for (const featureName of selectedFeatures) {
350
+ try {
351
+ log.plain('');
352
+ log.plain('━'.repeat(60));
353
+ log.info(`Installing ${featureName}...`);
354
+ log.plain('');
355
+ // Import and use the add command logic
356
+ const { getToken } = await import('../core/auth.js');
357
+ const { fetchRecipe, downloadZip } = await import('../core/http.js');
358
+ const { extractZipSafe } = await import('../core/archive.js');
359
+ const { copyTree, readFileContent } = await import('../core/fsx.js');
360
+ const { addEntry } = await import('../core/journal.js');
361
+ const { hashFiles } = await import('../core/hash.js');
362
+ const { insertNavLinkNative } = await import('../core/codemod.js');
363
+ const { getDeviceInfo } = await import('../core/auth.js');
364
+ const { validateSignature } = await import('../core/validate.js');
365
+ const { getPaths } = await import('../core/paths.js');
366
+ const paths = getPaths();
367
+ const token = await getToken();
368
+ const device = await getDeviceInfo();
369
+ const config = await validateSignature(paths.signatureFile);
370
+ // Fetch recipe
371
+ const response = await fetchRecipe({
372
+ token: token,
373
+ device,
374
+ feature: featureName,
375
+ target: 'native',
376
+ starter: { name: config.name, version: config.version },
377
+ });
378
+ if (!response.ok || (!response.signedUrl && !response.zipData)) {
379
+ log.warn(`⚠ Could not fetch ${featureName}: ${response.error || 'Unknown error'}`);
380
+ log.info(`You can install it later with: vf add ${featureName}`);
381
+ continue;
382
+ }
383
+ // Download and extract
384
+ const zipPath = response.zipData
385
+ ? await downloadZip(response.zipData, true)
386
+ : await downloadZip(response.signedUrl);
387
+ const extractDir = zipPath.replace('.zip', '');
388
+ await extractZipSafe(zipPath, extractDir);
389
+ // Read manifest
390
+ const manifestPath = join(extractDir, 'recipe.json');
391
+ const manifestContent = await readFileContent(manifestPath);
392
+ const manifest = JSON.parse(manifestContent);
393
+ // Copy files
394
+ const copiedFiles = [];
395
+ const { resolve: resolvePath } = await import('path');
396
+ for (const copySpec of manifest.copy) {
397
+ const srcPath = resolvePath(extractDir, copySpec.from);
398
+ const destPath = resolvePath(projectPath, copySpec.to);
399
+ const result = await copyTree(srcPath, destPath, { force: true });
400
+ copiedFiles.push(...result.files);
401
+ }
402
+ // Add navigation
403
+ let navInserted = false;
404
+ if (manifest.nav) {
405
+ navInserted = await insertNavLinkNative(paths.nativeNavFile, manifest.nav, {});
406
+ }
407
+ // Hash and journal
408
+ const fileHashes = await hashFiles(copiedFiles);
409
+ const fileEntries = Array.from(fileHashes.entries()).map(([path, hash]) => ({
410
+ path,
411
+ hash,
412
+ }));
413
+ await addEntry(paths.journalFile, {
414
+ feature: manifest.name,
415
+ target: manifest.target,
416
+ files: fileEntries,
417
+ insertedNav: navInserted,
418
+ navHref: manifest.nav?.href,
419
+ navLabel: manifest.nav?.label,
420
+ ts: Date.now(),
421
+ manifest: {
422
+ version: manifest.version,
423
+ manualSteps: manifest.manualSteps,
424
+ env: manifest.env,
425
+ },
426
+ });
427
+ log.success(`✓ ${featureName} installed successfully!`);
428
+ }
429
+ catch (error) {
430
+ log.warn(`⚠ Failed to install ${featureName}: ${error.message}`);
431
+ log.info(`You can install it later with: vf add ${featureName}`);
432
+ }
433
+ }
434
+ // Go back to original directory
435
+ process.chdir('..');
436
+ log.plain('');
437
+ log.plain('━'.repeat(60));
438
+ log.success(`✓ Installed ${selectedFeatures.length} feature(s)`);
439
+ log.plain('');
440
+ }
324
441
  // Step 7: Login with license key (REQUIRED)
325
442
  let licenseKey = options.license;
326
443
  // Check if user already has a license key saved
@@ -363,7 +480,11 @@ export const initCommand = new Command('init')
363
480
  log.plain('');
364
481
  log.success('🎉 Project initialized successfully!');
365
482
  log.plain('');
483
+ log.info(`Setup: ${starterType === 'clean' ? 'Clean' : 'Custom'}`);
366
484
  log.info(`Platforms: ${platforms.join(' + ')}`);
485
+ if (starterType === 'custom' && selectedFeatures.length > 0) {
486
+ log.info(`Features: ${selectedFeatures.join(', ')}`);
487
+ }
367
488
  log.plain('');
368
489
  log.info('Next steps:');
369
490
  log.plain(` 1. cd ${projectName}`);
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibefast-cli",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "CLI for installing VibeFast features into your monorepo",
5
5
  "type": "module",
6
6
  "bin": {
@@ -37,36 +37,64 @@ export const initCommand = new Command('init')
37
37
  process.exit(1);
38
38
  }
39
39
 
40
- // Step 1: Choose branch (always ask unless --branch provided)
41
- let branch = options.branch as 'clean' | 'main';
40
+ // Step 1: Choose starter type
41
+ let starterType: 'clean' | 'custom' = 'clean';
42
+ let selectedFeatures: string[] = [];
42
43
 
43
- if (!options.branch) {
44
- if (options.yes) {
45
- // Default to main if --yes is used without --branch
46
- branch = 'main';
47
- log.info('Using default: full starter');
48
- } else {
49
- // Always prompt for branch selection
50
- branch = await promptSelect(
51
- 'Which starter template would you like?',
52
- [
53
- {
54
- name: 'Full',
55
- value: 'main',
56
- description: 'All features included - ready to customize',
57
- },
58
- {
59
- name: 'Clean',
60
- value: 'clean',
61
- description: 'Minimal setup - add features as you need them',
62
- },
63
- ]
64
- ) as 'clean' | 'main';
44
+ if (!options.yes) {
45
+ starterType = await promptSelect(
46
+ 'How would you like to start?',
47
+ [
48
+ {
49
+ name: 'Clean',
50
+ value: 'clean',
51
+ description: 'Minimal setup - add features later with vf add',
52
+ },
53
+ {
54
+ name: 'Custom',
55
+ value: 'custom',
56
+ description: 'Choose features now - one-shot setup',
57
+ },
58
+ ]
59
+ ) as 'clean' | 'custom';
60
+
61
+ log.info(`Selected: ${starterType === 'clean' ? 'Clean starter' : 'Custom setup'}`);
62
+ log.plain('');
63
+
64
+ // If custom, let them choose features
65
+ if (starterType === 'custom') {
66
+ const { promptMultiSelectAsync } = await import('../core/prompt.js');
67
+ const { RECIPES, getRecipesByCategory } = await import('../core/recipes.js');
68
+
69
+ log.info('📦 Select features to include:');
70
+ log.plain('');
71
+
72
+ // Get native features
73
+ const nativeFeatures = getRecipesByCategory('feature').map(r => ({
74
+ value: r.name,
75
+ label: `${r.icon} ${r.name}`,
76
+ description: r.description,
77
+ }));
78
+
79
+ selectedFeatures = await promptMultiSelectAsync(
80
+ 'Select features (use space to toggle, enter to confirm):',
81
+ nativeFeatures
82
+ );
83
+
84
+ if (selectedFeatures.length > 0) {
85
+ log.info(`Selected ${selectedFeatures.length} feature(s): ${selectedFeatures.join(', ')}`);
86
+ } else {
87
+ log.info('No features selected - starting with clean setup');
88
+ }
89
+ log.plain('');
65
90
  }
91
+ } else {
92
+ log.info('Using default: Clean starter');
93
+ log.plain('');
66
94
  }
67
-
68
- log.info(`Selected: ${branch === 'main' ? 'full' : 'clean'} starter`);
69
- log.plain('');
95
+
96
+ // Always use clean branch for cloning
97
+ const branch = 'clean';
70
98
 
71
99
  // Step 1.5: Choose platforms
72
100
  let platforms: string[] = ['native', 'web'];
@@ -78,7 +106,7 @@ export const initCommand = new Command('init')
78
106
  {
79
107
  name: 'Both (Native + Web)',
80
108
  value: 'both',
81
- description: 'Full monorepo with mobile and web apps',
109
+ description: 'Full monorepo with mobile and web app',
82
110
  },
83
111
  {
84
112
  name: 'Native Only (Expo)',
@@ -138,15 +166,13 @@ export const initCommand = new Command('init')
138
166
  const repoUrl = 'https://github.com/mzafarr/vibefast-pro.git';
139
167
 
140
168
  await withSpinner(
141
- `Cloning VibeFast monorepo (${branch === 'main' ? 'full' : 'clean'} starter)...`,
169
+ `Cloning VibeFast monorepo (clean starter)...`,
142
170
  async () => {
143
171
  const git = simpleGit();
144
172
  const cloneOptions = ['--depth', '1'];
145
173
 
146
- // Only specify branch if not main (main is default)
147
- if (branch !== 'main') {
148
- cloneOptions.unshift('--branch', branch, '--single-branch');
149
- }
174
+ // Always use clean branch
175
+ cloneOptions.unshift('--branch', 'clean', '--single-branch');
150
176
 
151
177
  try {
152
178
  await git.clone(repoUrl, projectName, cloneOptions);
@@ -398,6 +424,122 @@ export const initCommand = new Command('init')
398
424
  log.plain('');
399
425
  }
400
426
 
427
+ // Step 6.5: Install selected features (if custom setup)
428
+ if (starterType === 'custom' && selectedFeatures.length > 0) {
429
+ log.plain('');
430
+ log.info('📦 Installing selected features...');
431
+ log.plain('');
432
+
433
+ // We need to be in the project directory for feature installation
434
+ process.chdir(projectPath);
435
+
436
+ for (const featureName of selectedFeatures) {
437
+ try {
438
+ log.plain('');
439
+ log.plain('━'.repeat(60));
440
+ log.info(`Installing ${featureName}...`);
441
+ log.plain('');
442
+
443
+ // Import and use the add command logic
444
+ const { getToken } = await import('../core/auth.js');
445
+ const { fetchRecipe, downloadZip } = await import('../core/http.js');
446
+ const { extractZipSafe } = await import('../core/archive.js');
447
+ const { copyTree, readFileContent } = await import('../core/fsx.js');
448
+ const { addEntry } = await import('../core/journal.js');
449
+ const { hashFiles } = await import('../core/hash.js');
450
+ const { insertNavLinkNative } = await import('../core/codemod.js');
451
+ const { getDeviceInfo } = await import('../core/auth.js');
452
+ const { validateSignature } = await import('../core/validate.js');
453
+ const { getPaths } = await import('../core/paths.js');
454
+
455
+ const paths = getPaths();
456
+ const token = await getToken();
457
+ const device = await getDeviceInfo();
458
+ const config = await validateSignature(paths.signatureFile);
459
+
460
+ // Fetch recipe
461
+ const response = await fetchRecipe({
462
+ token: token!,
463
+ device,
464
+ feature: featureName,
465
+ target: 'native',
466
+ starter: { name: config.name, version: config.version },
467
+ });
468
+
469
+ if (!response.ok || (!response.signedUrl && !response.zipData)) {
470
+ log.warn(`⚠ Could not fetch ${featureName}: ${response.error || 'Unknown error'}`);
471
+ log.info(`You can install it later with: vf add ${featureName}`);
472
+ continue;
473
+ }
474
+
475
+ // Download and extract
476
+ const zipPath = response.zipData
477
+ ? await downloadZip(response.zipData, true)
478
+ : await downloadZip(response.signedUrl!);
479
+
480
+ const extractDir = zipPath.replace('.zip', '');
481
+ await extractZipSafe(zipPath, extractDir);
482
+
483
+ // Read manifest
484
+ const manifestPath = join(extractDir, 'recipe.json');
485
+ const manifestContent = await readFileContent(manifestPath);
486
+ const manifest = JSON.parse(manifestContent);
487
+
488
+ // Copy files
489
+ const copiedFiles: string[] = [];
490
+ const { resolve: resolvePath } = await import('path');
491
+ for (const copySpec of manifest.copy) {
492
+ const srcPath = resolvePath(extractDir, copySpec.from);
493
+ const destPath = resolvePath(projectPath, copySpec.to);
494
+ const result = await copyTree(srcPath, destPath, { force: true });
495
+ copiedFiles.push(...result.files);
496
+ }
497
+
498
+ // Add navigation
499
+ let navInserted = false;
500
+ if (manifest.nav) {
501
+ navInserted = await insertNavLinkNative(paths.nativeNavFile, manifest.nav, {});
502
+ }
503
+
504
+ // Hash and journal
505
+ const fileHashes = await hashFiles(copiedFiles);
506
+ const fileEntries = Array.from(fileHashes.entries()).map(([path, hash]) => ({
507
+ path,
508
+ hash,
509
+ }));
510
+
511
+ await addEntry(paths.journalFile, {
512
+ feature: manifest.name,
513
+ target: manifest.target,
514
+ files: fileEntries,
515
+ insertedNav: navInserted,
516
+ navHref: manifest.nav?.href,
517
+ navLabel: manifest.nav?.label,
518
+ ts: Date.now(),
519
+ manifest: {
520
+ version: manifest.version,
521
+ manualSteps: manifest.manualSteps,
522
+ env: manifest.env,
523
+ },
524
+ });
525
+
526
+ log.success(`✓ ${featureName} installed successfully!`);
527
+
528
+ } catch (error: any) {
529
+ log.warn(`⚠ Failed to install ${featureName}: ${error.message}`);
530
+ log.info(`You can install it later with: vf add ${featureName}`);
531
+ }
532
+ }
533
+
534
+ // Go back to original directory
535
+ process.chdir('..');
536
+
537
+ log.plain('');
538
+ log.plain('━'.repeat(60));
539
+ log.success(`✓ Installed ${selectedFeatures.length} feature(s)`);
540
+ log.plain('');
541
+ }
542
+
401
543
  // Step 7: Login with license key (REQUIRED)
402
544
  let licenseKey = options.license;
403
545
 
@@ -456,7 +598,11 @@ export const initCommand = new Command('init')
456
598
  log.plain('');
457
599
  log.success('🎉 Project initialized successfully!');
458
600
  log.plain('');
601
+ log.info(`Setup: ${starterType === 'clean' ? 'Clean' : 'Custom'}`);
459
602
  log.info(`Platforms: ${platforms.join(' + ')}`);
603
+ if (starterType === 'custom' && selectedFeatures.length > 0) {
604
+ log.info(`Features: ${selectedFeatures.join(', ')}`);
605
+ }
460
606
  log.plain('');
461
607
  log.info('Next steps:');
462
608
  log.plain(` 1. cd ${projectName}`);