kigumi 0.18.2 → 0.18.3

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.
@@ -777,6 +777,13 @@ Quick fix:
777
777
 
778
778
  Then run kigumi init again.`;
779
779
  }
780
+ function isEresolveError(error) {
781
+ if (error && typeof error === "object" && "stderr" in error) {
782
+ const stderr = String(error.stderr);
783
+ return /ERESOLVE/.test(stderr);
784
+ }
785
+ return false;
786
+ }
780
787
  async function installDependencies(options) {
781
788
  const { cwd, config, tier, packageManager, output } = options;
782
789
  const lockfileCheck = await checkLockfileCompatibility(cwd, packageManager);
@@ -816,18 +823,48 @@ async function installDependencies(options) {
816
823
  }
817
824
  const installCmd = packageManager === "npm" ? "install" : "add";
818
825
  const args = [installCmd, ...dependencies];
819
- await execa(packageManager, args, {
820
- cwd,
821
- stdio: "pipe",
822
- env
823
- });
824
- if (devDependencies.length > 0) {
825
- const devArgs = packageManager === "npm" ? ["install", "--save-dev", ...devDependencies] : ["add", "-D", ...devDependencies];
826
- await execa(packageManager, devArgs, {
826
+ try {
827
+ await execa(packageManager, args, {
827
828
  cwd,
828
829
  stdio: "pipe",
829
830
  env
830
831
  });
832
+ } catch (firstError) {
833
+ if (packageManager === "npm" && isEresolveError(firstError)) {
834
+ output.warn(
835
+ "Peer dependency conflict detected, retrying with --legacy-peer-deps"
836
+ );
837
+ await execa(packageManager, [...args, "--legacy-peer-deps"], {
838
+ cwd,
839
+ stdio: "pipe",
840
+ env
841
+ });
842
+ } else {
843
+ throw firstError;
844
+ }
845
+ }
846
+ if (devDependencies.length > 0) {
847
+ const devArgs = packageManager === "npm" ? ["install", "--save-dev", ...devDependencies] : ["add", "-D", ...devDependencies];
848
+ try {
849
+ await execa(packageManager, devArgs, {
850
+ cwd,
851
+ stdio: "pipe",
852
+ env
853
+ });
854
+ } catch (firstError) {
855
+ if (packageManager === "npm" && isEresolveError(firstError)) {
856
+ output.warn(
857
+ "Peer dependency conflict detected, retrying with --legacy-peer-deps"
858
+ );
859
+ await execa(packageManager, [...devArgs, "--legacy-peer-deps"], {
860
+ cwd,
861
+ stdio: "pipe",
862
+ env
863
+ });
864
+ } else {
865
+ throw firstError;
866
+ }
867
+ }
831
868
  }
832
869
  spinner.stop("Dependencies installed");
833
870
  } catch (error) {
@@ -9303,4 +9340,4 @@ process.on("unhandledRejection", (reason) => {
9303
9340
  process.exit(1);
9304
9341
  });
9305
9342
  program.parse();
9306
- //# sourceMappingURL=-DVMKE7OE.js.map
9343
+ //# sourceMappingURL=-STBDO4ZI.js.map