@srcroot/ui 0.0.15 → 0.0.17

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.
Files changed (2) hide show
  1. package/dist/index.js +15 -9
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -574,20 +574,27 @@ async function init(options) {
574
574
  missing.push(installCmd2);
575
575
  }
576
576
  }
577
+ if (missing.length === 0) {
578
+ spinner.succeed(chalk.green("All dependencies already installed"));
579
+ } else {
580
+ spinner.info(`Found ${chalk.cyan(missing.length)} missing ${missing.length === 1 ? "dependency" : "dependencies"}: ${chalk.dim(missing.map((d) => d.split("@")[0]).join(", "))}`);
581
+ }
577
582
  async function installOneByOne(spinner2, packageManager2, installCmd2, missing2, cwd2, execSync) {
578
583
  spinner2.warn("Batch installation failed. Attempting to install dependencies one by one...");
579
584
  let allSucceeded = true;
585
+ const installFlags = packageManager2 === "npm" ? "--legacy-peer-deps" : "";
580
586
  for (const dep of missing2) {
581
- spinner2.text = `Installing ${dep} via ${packageManager2}...`;
587
+ spinner2.start(`Installing ${chalk.cyan(dep)} via ${packageManager2}${installFlags ? " (with --legacy-peer-deps)" : ""}...`);
582
588
  try {
583
- execSync(`${packageManager2} ${installCmd2} ${dep}`, {
589
+ const command = installFlags ? `${packageManager2} ${installCmd2} ${installFlags} ${dep}` : `${packageManager2} ${installCmd2} ${dep}`;
590
+ execSync(command, {
584
591
  stdio: "pipe",
585
592
  cwd: cwd2
586
593
  });
587
- spinner2.succeed(`Installed ${dep}`);
594
+ spinner2.succeed(`Installed ${chalk.green(dep)}`);
588
595
  } catch (depError) {
589
596
  allSucceeded = false;
590
- spinner2.fail(`Failed to install ${dep}`);
597
+ spinner2.fail(`Failed to install ${chalk.red(dep)}`);
591
598
  if (depError.stdout) {
592
599
  console.log(chalk.dim(`
593
600
  === stdout for ${dep} ===`));
@@ -601,11 +608,12 @@ async function init(options) {
601
608
  }
602
609
  }
603
610
  if (allSucceeded) {
604
- spinner2.succeed("All dependencies installed one by one.");
611
+ console.log(chalk.green("\n\u2705 All dependencies installed successfully!\n"));
605
612
  } else {
606
- spinner2.fail("Some dependencies failed to install.");
613
+ console.log(chalk.yellow("\n\u26A0 Some dependencies failed to install."));
614
+ const manualCmd = installFlags ? `${packageManager2} ${installCmd2} ${installFlags} ${missing2.join(" ")}` : `${packageManager2} ${installCmd2} ${missing2.join(" ")}`;
607
615
  console.log(chalk.dim(`
608
- Please manually run: ${packageManager2} ${installCmd2} ${missing2.join(" ")}
616
+ Please manually run: ${manualCmd}
609
617
  `));
610
618
  }
611
619
  }
@@ -635,8 +643,6 @@ Please manually run: ${packageManager2} ${installCmd2} ${missing2.join(" ")}
635
643
  await installOneByOne(spinner, packageManager, installCmd, missing, cwd, execSync);
636
644
  }
637
645
  }
638
- } else {
639
- spinner.succeed("All dependencies already installed");
640
646
  }
641
647
  console.log(chalk.green("\n\u2705 Project initialized successfully!\n"));
642
648
  console.log(`Theme: ${chalk.cyan(THEMES[selectedTheme].name)}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@srcroot/ui",
3
- "version": "0.0.15",
3
+ "version": "0.0.17",
4
4
  "description": "A shadcn-style CLI UI library with polymorphic, accessible React components",
5
5
  "type": "module",
6
6
  "bin": {