@icebreakers/monorepo 1.1.8 → 1.2.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.
Files changed (41) hide show
  1. package/assets/package.json +1 -1
  2. package/dist/{chunk-EHVQVCB2.js → chunk-EBATUF3S.js} +169 -105
  3. package/dist/cli.cjs +117 -113
  4. package/dist/cli.js +10 -71
  5. package/dist/index.cjs +156 -100
  6. package/dist/index.d.cts +10 -3
  7. package/dist/index.d.ts +10 -3
  8. package/dist/index.js +3 -3
  9. package/package.json +3 -1
  10. package/templates/tsup-template/package.json +0 -42
  11. package/templates/tsup-template/src/index.ts +0 -12
  12. package/templates/tsup-template/test/index.test.ts +0 -7
  13. package/templates/tsup-template/tsconfig.json +0 -15
  14. package/templates/tsup-template/tsup.config.ts +0 -18
  15. package/templates/tsup-template/vitest.config.ts +0 -15
  16. package/templates/unbuild-template/build.config.ts +0 -24
  17. package/templates/unbuild-template/package.json +0 -42
  18. package/templates/unbuild-template/src/index.ts +0 -9
  19. package/templates/unbuild-template/src/utils.ts +0 -3
  20. package/templates/unbuild-template/test/index.test.ts +0 -7
  21. package/templates/unbuild-template/tsconfig.json +0 -15
  22. package/templates/unbuild-template/vitest.config.ts +0 -15
  23. package/templates/vue-lib-template/eslint.config.js +0 -12
  24. package/templates/vue-lib-template/index.html +0 -13
  25. package/templates/vue-lib-template/lib/HelloWorld.vue +0 -21
  26. package/templates/vue-lib-template/lib/index.ts +0 -3
  27. package/templates/vue-lib-template/package.json +0 -61
  28. package/templates/vue-lib-template/src/App.vue +0 -9
  29. package/templates/vue-lib-template/src/main.ts +0 -8
  30. package/templates/vue-lib-template/src/pages/index.vue +0 -7
  31. package/templates/vue-lib-template/src/router/index.ts +0 -11
  32. package/templates/vue-lib-template/src/style.css +0 -1
  33. package/templates/vue-lib-template/src/vite-env.d.ts +0 -2
  34. package/templates/vue-lib-template/test/index.test.ts +0 -13
  35. package/templates/vue-lib-template/tsconfig.app.json +0 -30
  36. package/templates/vue-lib-template/tsconfig.json +0 -14
  37. package/templates/vue-lib-template/tsconfig.node.json +0 -25
  38. package/templates/vue-lib-template/tsconfig.test.json +0 -40
  39. package/templates/vue-lib-template/vite.config.ts +0 -47
  40. package/templates/vue-lib-template/vite.shared.config.ts +0 -13
  41. package/templates/vue-lib-template/vitest.config.ts +0 -13
package/dist/index.cjs CHANGED
@@ -190,9 +190,9 @@ var require_set_value = __commonJS({
190
190
  }
191
191
  return obj;
192
192
  };
193
- var setValue = (target, path10, value, options) => {
194
- if (!path10 || !isObject2(target)) return target;
195
- const keys = split2(path10, options);
193
+ var setValue = (target, path12, value, options) => {
194
+ if (!path12 || !isObject2(target)) return target;
195
+ const keys = split2(path12, options);
196
196
  let obj = target;
197
197
  for (let i = 0; i < keys.length; i++) {
198
198
  const key = keys[i];
@@ -227,6 +227,7 @@ var index_exports = {};
227
227
  __export(index_exports, {
228
228
  GitClient: () => GitClient,
229
229
  cleanProjects: () => cleanProjects,
230
+ createNewProject: () => createNewProject,
230
231
  escapeStringRegexp: () => escapeStringRegexp,
231
232
  getFileHash: () => getFileHash,
232
233
  getWorkspaceData: () => getWorkspaceData,
@@ -234,7 +235,6 @@ __export(index_exports, {
234
235
  init: () => init,
235
236
  isFileChanged: () => isFileChanged,
236
237
  isMatch: () => isMatch,
237
- setPkgJson: () => setPkgJson,
238
238
  setVscodeBinaryMirror: () => setVscodeBinaryMirror,
239
239
  syncNpmMirror: () => syncNpmMirror,
240
240
  upgradeMonorepo: () => upgradeMonorepo
@@ -392,6 +392,80 @@ async function cleanProjects(cwd) {
392
392
  });
393
393
  }
394
394
 
395
+ // src/monorepo/create.ts
396
+ init_cjs_shims();
397
+ var import_node_process = __toESM(require("process"), 1);
398
+ var import_fs_extra2 = __toESM(require("fs-extra"), 1);
399
+ var import_pathe3 = __toESM(require("pathe"), 1);
400
+ var import_picocolors = __toESM(require("picocolors"), 1);
401
+ var import_set_value2 = __toESM(require_set_value(), 1);
402
+
403
+ // src/constants.ts
404
+ init_cjs_shims();
405
+ var import_node_path = __toESM(require("path"), 1);
406
+ var import_node_url = require("url");
407
+
408
+ // package.json
409
+ var name = "@icebreakers/monorepo";
410
+ var version = "1.2.0";
411
+
412
+ // src/constants.ts
413
+ var __filename2 = (0, import_node_url.fileURLToPath)(importMetaUrl);
414
+ var __dirname = import_node_path.default.dirname(__filename2);
415
+ var templatesDir = import_node_path.default.join(__dirname, "../templates");
416
+ var assetsDir = import_node_path.default.join(__dirname, "../assets");
417
+ var rootDir = import_node_path.default.join(__dirname, "../../..");
418
+
419
+ // src/logger.ts
420
+ init_cjs_shims();
421
+ var import_consola = require("consola");
422
+ var logger = (0, import_consola.createConsola)();
423
+
424
+ // src/monorepo/create.ts
425
+ var defaultTemplate = "unbuild";
426
+ var fromMap = {
427
+ "tsup": "packages/tsup-template",
428
+ "unbuild": "packages/unbuild-template",
429
+ "vue-lib": "packages/vue-lib-template",
430
+ "hono-server": "apps/server",
431
+ "vue-hono": "apps/client",
432
+ "vitepress": "apps/website",
433
+ "cli": "apps/cli"
434
+ };
435
+ async function createNewProject(options) {
436
+ const { name: targetName, renameJson, cwd, type } = defu(options, {
437
+ cwd: import_node_process.default.cwd(),
438
+ name: fromMap[defaultTemplate],
439
+ renameJson: false
440
+ });
441
+ const bundlerName = type ?? defaultTemplate;
442
+ const from = import_pathe3.default.join(templatesDir, fromMap[bundlerName]);
443
+ const to = import_pathe3.default.join(cwd, targetName);
444
+ const filelist = await import_fs_extra2.default.readdir(from);
445
+ for (const filename of filelist) {
446
+ if (filename === "package.json") {
447
+ const sourceJsonPath = import_pathe3.default.resolve(from, filename);
448
+ const sourceJson = await import_fs_extra2.default.readJson(sourceJsonPath);
449
+ (0, import_set_value2.default)(sourceJson, "version", "0.0.0");
450
+ (0, import_set_value2.default)(sourceJson, "name", import_pathe3.default.basename(targetName));
451
+ await import_fs_extra2.default.outputJson(
452
+ import_pathe3.default.resolve(
453
+ to,
454
+ renameJson ? "package.mock.json" : filename
455
+ ),
456
+ sourceJson,
457
+ { spaces: 2 }
458
+ );
459
+ } else {
460
+ await import_fs_extra2.default.copy(
461
+ import_pathe3.default.resolve(from, filename),
462
+ import_pathe3.default.resolve(to, filename)
463
+ );
464
+ }
465
+ }
466
+ logger.success(`${import_picocolors.default.bgGreenBright(import_picocolors.default.white(`[${bundlerName}]`))} ${targetName} \u9879\u76EE\u521B\u5EFA\u6210\u529F\uFF01`);
467
+ }
468
+
395
469
  // src/monorepo/git/index.ts
396
470
  init_cjs_shims();
397
471
 
@@ -406,11 +480,11 @@ var join = /* @__PURE__ */ __name((segs, joinChar, options) => {
406
480
  }
407
481
  return segs[0] + joinChar + segs[1];
408
482
  }, "join");
409
- var split = /* @__PURE__ */ __name((path10, splitChar, options) => {
483
+ var split = /* @__PURE__ */ __name((path12, splitChar, options) => {
410
484
  if (typeof options.split === "function") {
411
- return options.split(path10);
485
+ return options.split(path12);
412
486
  }
413
- return path10.split(splitChar);
487
+ return path12.split(splitChar);
414
488
  }, "split");
415
489
  var isValid = /* @__PURE__ */ __name((key, target = {}, options) => {
416
490
  if (typeof (options == null ? void 0 : options.isValid) === "function") {
@@ -421,27 +495,27 @@ var isValid = /* @__PURE__ */ __name((key, target = {}, options) => {
421
495
  var isValidObject = /* @__PURE__ */ __name((v) => {
422
496
  return isObject(v) || typeof v === "function";
423
497
  }, "isValidObject");
424
- var getValue = /* @__PURE__ */ __name((target, path10, options = {}) => {
498
+ var getValue = /* @__PURE__ */ __name((target, path12, options = {}) => {
425
499
  if (!isObject(options)) {
426
500
  options = { default: options };
427
501
  }
428
502
  if (!isValidObject(target)) {
429
503
  return typeof options.default !== "undefined" ? options.default : target;
430
504
  }
431
- if (typeof path10 === "number") {
432
- path10 = String(path10);
505
+ if (typeof path12 === "number") {
506
+ path12 = String(path12);
433
507
  }
434
- const pathIsArray = Array.isArray(path10);
435
- const pathIsString = typeof path10 === "string";
508
+ const pathIsArray = Array.isArray(path12);
509
+ const pathIsString = typeof path12 === "string";
436
510
  const splitChar = options.separator || ".";
437
511
  const joinChar = options.joinChar || (typeof splitChar === "string" ? splitChar : ".");
438
512
  if (!pathIsString && !pathIsArray) {
439
513
  return target;
440
514
  }
441
- if (target[path10] !== void 0) {
442
- return isValid(path10, target, options) ? target[path10] : options.default;
515
+ if (target[path12] !== void 0) {
516
+ return isValid(path12, target, options) ? target[path12] : options.default;
443
517
  }
444
- const segs = pathIsArray ? path10 : split(path10, splitChar, options);
518
+ const segs = pathIsArray ? path12 : split(path12, splitChar, options);
445
519
  const len = segs.length;
446
520
  let idx = 0;
447
521
  do {
@@ -536,12 +610,12 @@ init_cjs_shims();
536
610
 
537
611
  // src/monorepo/context/index.ts
538
612
  init_cjs_shims();
539
- var import_pathe3 = __toESM(require("pathe"), 1);
613
+ var import_pathe4 = __toESM(require("pathe"), 1);
540
614
  var import_types = require("@pnpm/types");
541
615
  async function createContext(cwd) {
542
616
  const git = new GitClient();
543
617
  const { packages, workspaceDir } = await getWorkspaceData(cwd);
544
- const workspaceFilepath = import_pathe3.default.resolve(workspaceDir, "pnpm-workspace.yaml");
618
+ const workspaceFilepath = import_pathe4.default.resolve(workspaceDir, "pnpm-workspace.yaml");
545
619
  const gitUrl = await git.getGitUrl();
546
620
  const gitUser = await git.getUser();
547
621
  return {
@@ -557,20 +631,20 @@ async function createContext(cwd) {
557
631
 
558
632
  // src/monorepo/init/setChangeset.ts
559
633
  init_cjs_shims();
560
- var import_fs_extra2 = __toESM(require("fs-extra"), 1);
561
- var import_pathe4 = __toESM(require("pathe"), 1);
562
- var import_set_value2 = __toESM(require_set_value(), 1);
634
+ var import_fs_extra3 = __toESM(require("fs-extra"), 1);
635
+ var import_pathe5 = __toESM(require("pathe"), 1);
636
+ var import_set_value3 = __toESM(require_set_value(), 1);
563
637
  async function setChangeset_default(ctx) {
564
638
  const { gitUrl, workspaceFilepath } = ctx;
565
- if (gitUrl && await import_fs_extra2.default.exists(workspaceFilepath)) {
566
- const changesetConfigPath = import_pathe4.default.resolve(import_pathe4.default.dirname(workspaceFilepath), ".changeset/config.json");
567
- if (await import_fs_extra2.default.exists(changesetConfigPath)) {
568
- const changesetConfig = await import_fs_extra2.default.readJson(
639
+ if (gitUrl && await import_fs_extra3.default.exists(workspaceFilepath)) {
640
+ const changesetConfigPath = import_pathe5.default.resolve(import_pathe5.default.dirname(workspaceFilepath), ".changeset/config.json");
641
+ if (await import_fs_extra3.default.exists(changesetConfigPath)) {
642
+ const changesetConfig = await import_fs_extra3.default.readJson(
569
643
  changesetConfigPath
570
644
  );
571
645
  if (gitUrl.full_name) {
572
- (0, import_set_value2.default)(changesetConfig, "changelog.1.repo", gitUrl.full_name);
573
- await import_fs_extra2.default.outputJson(changesetConfigPath, changesetConfig, { spaces: 2 });
646
+ (0, import_set_value3.default)(changesetConfig, "changelog.1.repo", gitUrl.full_name);
647
+ await import_fs_extra3.default.outputJson(changesetConfigPath, changesetConfig, { spaces: 2 });
574
648
  }
575
649
  }
576
650
  }
@@ -578,16 +652,16 @@ async function setChangeset_default(ctx) {
578
652
 
579
653
  // src/monorepo/init/setPkgJson.ts
580
654
  init_cjs_shims();
581
- var import_fs_extra3 = __toESM(require("fs-extra"), 1);
582
- var import_pathe5 = __toESM(require("pathe"), 1);
583
- var import_set_value3 = __toESM(require_set_value(), 1);
655
+ var import_fs_extra4 = __toESM(require("fs-extra"), 1);
656
+ var import_pathe6 = __toESM(require("pathe"), 1);
657
+ var import_set_value4 = __toESM(require_set_value(), 1);
584
658
  async function setPkgJson_default(ctx) {
585
659
  const { gitUrl, gitUser, packages, cwd, workspaceFilepath } = ctx;
586
- if (gitUrl && await import_fs_extra3.default.exists(workspaceFilepath)) {
660
+ if (gitUrl && await import_fs_extra4.default.exists(workspaceFilepath)) {
587
661
  for (const pkg of packages) {
588
662
  const pkgJson = pkg.manifest;
589
- const directory = import_pathe5.default.relative(cwd, pkg.rootDir);
590
- (0, import_set_value3.default)(pkgJson, "bugs.url", `https://github.com/${gitUrl.full_name}/issues`);
663
+ const directory = import_pathe6.default.relative(cwd, pkg.rootDir);
664
+ (0, import_set_value4.default)(pkgJson, "bugs.url", `https://github.com/${gitUrl.full_name}/issues`);
591
665
  const repository = {
592
666
  type: "git",
593
667
  url: `git+https://github.com/${gitUrl.full_name}.git`
@@ -595,11 +669,11 @@ async function setPkgJson_default(ctx) {
595
669
  if (directory) {
596
670
  repository.directory = directory;
597
671
  }
598
- (0, import_set_value3.default)(pkgJson, "repository", repository);
672
+ (0, import_set_value4.default)(pkgJson, "repository", repository);
599
673
  if (gitUser) {
600
- (0, import_set_value3.default)(pkgJson, "author", `${gitUser.name} <${gitUser.email}>`);
674
+ (0, import_set_value4.default)(pkgJson, "author", `${gitUser.name} <${gitUser.email}>`);
601
675
  }
602
- await import_fs_extra3.default.writeJSON(pkg.pkgJsonPath, pkgJson, {
676
+ await import_fs_extra4.default.writeJSON(pkg.pkgJsonPath, pkgJson, {
603
677
  spaces: 2
604
678
  });
605
679
  }
@@ -608,8 +682,8 @@ async function setPkgJson_default(ctx) {
608
682
 
609
683
  // src/monorepo/init/setReadme.ts
610
684
  init_cjs_shims();
611
- var import_fs_extra4 = __toESM(require("fs-extra"), 1);
612
- var import_pathe6 = __toESM(require("pathe"), 1);
685
+ var import_fs_extra5 = __toESM(require("fs-extra"), 1);
686
+ var import_pathe7 = __toESM(require("pathe"), 1);
613
687
  async function getRows(ctx) {
614
688
  const { packages, git, cwd } = ctx;
615
689
  const gitUrl = await git.getGitUrl();
@@ -621,7 +695,7 @@ async function getRows(ctx) {
621
695
  }
622
696
  rows.push("## Packages\n");
623
697
  for (const pkg of packages) {
624
- const p = import_pathe6.default.relative(cwd, pkg.rootDirRealPath);
698
+ const p = import_pathe7.default.relative(cwd, pkg.rootDirRealPath);
625
699
  if (p) {
626
700
  const description = pkg.manifest.description ? `- ${pkg.manifest.description}` : "";
627
701
  rows.push(`- [${pkg.manifest.name}](${p}) ${description}`);
@@ -649,7 +723,7 @@ async function getRows(ctx) {
649
723
  }
650
724
  async function setReadme_default(ctx) {
651
725
  const rows = await getRows(ctx);
652
- await import_fs_extra4.default.writeFile(import_pathe6.default.resolve(ctx.cwd, "README.md"), `${rows.join("\n")}
726
+ await import_fs_extra5.default.writeFile(import_pathe7.default.resolve(ctx.cwd, "README.md"), `${rows.join("\n")}
653
727
  `);
654
728
  }
655
729
 
@@ -664,12 +738,12 @@ async function init(cwd) {
664
738
  // src/monorepo/mirror/binaryMirror.ts
665
739
  init_cjs_shims();
666
740
  var import_comment_json = require("comment-json");
667
- var import_fs_extra5 = __toESM(require("fs-extra"), 1);
668
- var import_pathe7 = __toESM(require("pathe"), 1);
741
+ var import_fs_extra6 = __toESM(require("fs-extra"), 1);
742
+ var import_pathe8 = __toESM(require("pathe"), 1);
669
743
 
670
744
  // src/monorepo/mirror/utils.ts
671
745
  init_cjs_shims();
672
- var import_set_value4 = __toESM(require_set_value(), 1);
746
+ var import_set_value5 = __toESM(require_set_value(), 1);
673
747
 
674
748
  // src/monorepo/mirror/sources.ts
675
749
  init_cjs_shims();
@@ -708,18 +782,18 @@ function setMirror(obj) {
708
782
  const prefix = "terminal.integrated.env";
709
783
  if (typeof obj === "object" && obj) {
710
784
  for (const platform of platforms) {
711
- (0, import_set_value4.default)(obj, [prefix, platform].join(".").replaceAll(".", "\\."), chinaMirrorsEnvs);
785
+ (0, import_set_value5.default)(obj, [prefix, platform].join(".").replaceAll(".", "\\."), chinaMirrorsEnvs);
712
786
  }
713
787
  }
714
788
  }
715
789
 
716
790
  // src/monorepo/mirror/binaryMirror.ts
717
791
  async function setVscodeBinaryMirror(cwd) {
718
- const targetJsonPath = import_pathe7.default.resolve(cwd, ".vscode/settings.json");
719
- await import_fs_extra5.default.ensureFile(targetJsonPath);
720
- const json = (0, import_comment_json.parse)(await import_fs_extra5.default.readFile(targetJsonPath, "utf8"), void 0, false);
792
+ const targetJsonPath = import_pathe8.default.resolve(cwd, ".vscode/settings.json");
793
+ await import_fs_extra6.default.ensureFile(targetJsonPath);
794
+ const json = (0, import_comment_json.parse)(await import_fs_extra6.default.readFile(targetJsonPath, "utf8"), void 0, false);
721
795
  json && typeof json === "object" && setMirror(json);
722
- await import_fs_extra5.default.writeFile(targetJsonPath, `${(0, import_comment_json.stringify)(json, void 0, 2)}
796
+ await import_fs_extra6.default.writeFile(targetJsonPath, `${(0, import_comment_json.stringify)(json, void 0, 2)}
723
797
  `, "utf8");
724
798
  }
725
799
 
@@ -728,27 +802,20 @@ init_cjs_shims();
728
802
  var import_node_os = __toESM(require("os"), 1);
729
803
  var import_execa = require("execa");
730
804
  var import_p_queue = __toESM(require("p-queue"), 1);
731
- var import_pathe8 = __toESM(require("pathe"), 1);
732
- var import_picocolors = __toESM(require("picocolors"), 1);
733
-
734
- // src/logger.ts
735
- init_cjs_shims();
736
- var import_consola = require("consola");
737
- var logger = (0, import_consola.createConsola)();
738
-
739
- // src/monorepo/sync.ts
805
+ var import_pathe9 = __toESM(require("pathe"), 1);
806
+ var import_picocolors2 = __toESM(require("picocolors"), 1);
740
807
  async function syncNpmMirror(cwd, options) {
741
808
  const { packages, workspaceDir } = await getWorkspaceData(cwd, options);
742
809
  logger.info(`[\u5F53\u524D\u5DE5\u4F5C\u533ARepo]:
743
- ${packages.map((x) => `- ${import_picocolors.default.green(x.manifest.name)} : ${import_pathe8.default.relative(workspaceDir, x.rootDir)}`).join("\n")}
810
+ ${packages.map((x) => `- ${import_picocolors2.default.green(x.manifest.name)} : ${import_pathe9.default.relative(workspaceDir, x.rootDir)}`).join("\n")}
744
811
  `);
745
- const set6 = new Set(packages.map((x) => x.manifest.name));
812
+ const set7 = new Set(packages.map((x) => x.manifest.name));
746
813
  logger.info(`[\u5373\u5C06\u540C\u6B65\u7684\u5305]:
747
- ${Array.from(set6).map((x) => `- ${import_picocolors.default.green(x)}`).join("\n")}
814
+ ${Array.from(set7).map((x) => `- ${import_picocolors2.default.green(x)}`).join("\n")}
748
815
  `);
749
816
  const concurrency = Math.max(import_node_os.default.cpus().length, 1);
750
817
  const queue2 = new import_p_queue.default({ concurrency });
751
- for (const pkgName of set6) {
818
+ for (const pkgName of set7) {
752
819
  if (pkgName) {
753
820
  await queue2.add(async () => {
754
821
  return (0, import_execa.execa)({
@@ -759,25 +826,17 @@ ${Array.from(set6).map((x) => `- ${import_picocolors.default.green(x)}`).join("\
759
826
  }
760
827
  }
761
828
 
762
- // src/upgrade.ts
829
+ // src/monorepo/upgrade.ts
763
830
  init_cjs_shims();
764
- var import_node_process = __toESM(require("process"), 1);
765
- var import_node_url = require("url");
831
+ var import_node_process2 = __toESM(require("process"), 1);
766
832
  var import_checkbox2 = __toESM(require("@inquirer/checkbox"), 1);
767
833
  var import_confirm = __toESM(require("@inquirer/confirm"), 1);
768
- var import_fs_extra6 = __toESM(require("fs-extra"), 1);
834
+ var import_fs_extra7 = __toESM(require("fs-extra"), 1);
769
835
  var import_klaw = __toESM(require("klaw"), 1);
770
836
  var import_p_queue2 = __toESM(require("p-queue"), 1);
771
- var import_pathe9 = __toESM(require("pathe"), 1);
772
- var import_picocolors2 = __toESM(require("picocolors"), 1);
773
- var import_set_value5 = __toESM(require_set_value(), 1);
774
-
775
- // src/constants.ts
776
- init_cjs_shims();
777
-
778
- // package.json
779
- var name = "@icebreakers/monorepo";
780
- var version = "1.1.8";
837
+ var import_pathe10 = __toESM(require("pathe"), 1);
838
+ var import_picocolors3 = __toESM(require("picocolors"), 1);
839
+ var import_set_value6 = __toESM(require_set_value(), 1);
781
840
 
782
841
  // src/scripts.ts
783
842
  init_cjs_shims();
@@ -859,11 +918,8 @@ function isMatch(str, arr) {
859
918
  return false;
860
919
  }
861
920
 
862
- // src/upgrade.ts
921
+ // src/monorepo/upgrade.ts
863
922
  var queue = new import_p_queue2.default({ concurrency: 1 });
864
- var __filename2 = (0, import_node_url.fileURLToPath)(importMetaUrl);
865
- var __dirname = import_pathe9.default.dirname(__filename2);
866
- var assetsDir = import_pathe9.default.join(__dirname, "../assets");
867
923
  function isWorkspace(version2) {
868
924
  if (typeof version2 === "string") {
869
925
  return version2.startsWith("workspace:");
@@ -876,32 +932,32 @@ function setPkgJson(sourcePkgJson, targetPkgJson) {
876
932
  const devDeps = index_default(sourcePkgJson, "devDependencies", { default: {} });
877
933
  const targetDeps = index_default(targetPkgJson, "dependencies", { default: {} });
878
934
  const targetDevDeps = index_default(targetPkgJson, "devDependencies", { default: {} });
879
- (0, import_set_value5.default)(targetPkgJson, "packageManager", packageManager);
935
+ (0, import_set_value6.default)(targetPkgJson, "packageManager", packageManager);
880
936
  Object.entries(deps).forEach((x) => {
881
937
  if (!isWorkspace(targetDeps[x[0]])) {
882
- (0, import_set_value5.default)(targetPkgJson, `dependencies.${x[0].replaceAll(".", "\\.")}`, x[1], { preservePaths: false });
938
+ (0, import_set_value6.default)(targetPkgJson, `dependencies.${x[0].replaceAll(".", "\\.")}`, x[1], { preservePaths: false });
883
939
  }
884
940
  });
885
941
  Object.entries(devDeps).forEach((x) => {
886
942
  if (x[0] === name) {
887
- (0, import_set_value5.default)(targetPkgJson, `devDependencies.${x[0].replaceAll(".", "\\.")}`, `^${version}`, { preservePaths: false });
943
+ (0, import_set_value6.default)(targetPkgJson, `devDependencies.${x[0].replaceAll(".", "\\.")}`, `^${version}`, { preservePaths: false });
888
944
  } else if (!isWorkspace(targetDevDeps[x[0]])) {
889
- (0, import_set_value5.default)(targetPkgJson, `devDependencies.${x[0].replaceAll(".", "\\.")}`, x[1], { preservePaths: false });
945
+ (0, import_set_value6.default)(targetPkgJson, `devDependencies.${x[0].replaceAll(".", "\\.")}`, x[1], { preservePaths: false });
890
946
  }
891
947
  });
892
948
  for (const [k, v] of scriptsEntries) {
893
- (0, import_set_value5.default)(targetPkgJson, `scripts.${k}`, v);
949
+ (0, import_set_value6.default)(targetPkgJson, `scripts.${k}`, v);
894
950
  }
895
951
  }
896
952
  function confirmOverwrite(filename) {
897
- return (0, import_confirm.default)({ message: `${import_picocolors2.default.greenBright(filename)} \u6587\u4EF6\u5185\u5BB9\u53D1\u751F\u6539\u53D8,\u662F\u5426\u8986\u76D6?`, default: true });
953
+ return (0, import_confirm.default)({ message: `${import_picocolors3.default.greenBright(filename)} \u6587\u4EF6\u5185\u5BB9\u53D1\u751F\u6539\u53D8,\u662F\u5426\u8986\u76D6?`, default: true });
898
954
  }
899
955
  async function upgradeMonorepo(opts) {
900
956
  const { outDir, raw, interactive, cwd, skipOverwrite } = defu(opts, {
901
- cwd: import_node_process.default.cwd(),
957
+ cwd: import_node_process2.default.cwd(),
902
958
  outDir: ""
903
959
  });
904
- const absOutDir = import_pathe9.default.isAbsolute(outDir) ? outDir : import_pathe9.default.join(cwd, outDir);
960
+ const absOutDir = import_pathe10.default.isAbsolute(outDir) ? outDir : import_pathe10.default.join(cwd, outDir);
905
961
  const gitClient = new GitClient({
906
962
  baseDir: cwd
907
963
  });
@@ -923,20 +979,20 @@ async function upgradeMonorepo(opts) {
923
979
  });
924
980
  for await (const file of (0, import_klaw.default)(assetsDir, {
925
981
  filter(p) {
926
- const str = import_pathe9.default.relative(assetsDir, p);
982
+ const str = import_pathe10.default.relative(assetsDir, p);
927
983
  return isMatch(str, regexpArr);
928
984
  }
929
985
  })) {
930
986
  await queue.add(async () => {
931
987
  if (file.stats.isFile()) {
932
- const relPath = import_pathe9.default.relative(assetsDir, file.path);
933
- const targetPath = import_pathe9.default.resolve(absOutDir, relPath);
934
- const targetIsExisted = await import_fs_extra6.default.exists(targetPath);
988
+ const relPath = import_pathe10.default.relative(assetsDir, file.path);
989
+ const targetPath = import_pathe10.default.resolve(absOutDir, relPath);
990
+ const targetIsExisted = await import_fs_extra7.default.exists(targetPath);
935
991
  async function overwriteOrCopy(target) {
936
992
  let isOverwrite = true;
937
993
  if (targetIsExisted) {
938
- const src = await import_fs_extra6.default.readFile(file.path);
939
- const dest = target ?? await import_fs_extra6.default.readFile(targetPath);
994
+ const src = await import_fs_extra7.default.readFile(file.path);
995
+ const dest = target ?? await import_fs_extra7.default.readFile(targetPath);
940
996
  if (await isFileChanged(src, dest)) {
941
997
  isOverwrite = await confirmOverwrite(relPath);
942
998
  }
@@ -948,25 +1004,25 @@ async function upgradeMonorepo(opts) {
948
1004
  if (relPath === "package.json") {
949
1005
  const sourcePath = file.path;
950
1006
  if (targetIsExisted) {
951
- const sourcePkgJson = await import_fs_extra6.default.readJson(sourcePath);
952
- const targetPkgJson = await import_fs_extra6.default.readJson(targetPath);
1007
+ const sourcePkgJson = await import_fs_extra7.default.readJson(sourcePath);
1008
+ const targetPkgJson = await import_fs_extra7.default.readJson(targetPath);
953
1009
  setPkgJson(sourcePkgJson, targetPkgJson);
954
1010
  const data = JSON.stringify(targetPkgJson, void 0, 2);
955
- await import_fs_extra6.default.outputFile(targetPath, `${data}
1011
+ await import_fs_extra7.default.outputFile(targetPath, `${data}
956
1012
  `, "utf8");
957
1013
  logger.success(targetPath);
958
1014
  }
959
1015
  } else if (relPath === ".changeset/config.json" && repoName) {
960
- const changesetJson = await import_fs_extra6.default.readJson(file.path);
961
- (0, import_set_value5.default)(changesetJson, "changelog.1.repo", repoName);
1016
+ const changesetJson = await import_fs_extra7.default.readJson(file.path);
1017
+ (0, import_set_value6.default)(changesetJson, "changelog.1.repo", repoName);
962
1018
  const data = JSON.stringify(changesetJson, void 0, 2);
963
1019
  if (await overwriteOrCopy(data)) {
964
- await import_fs_extra6.default.outputFile(targetPath, `${data}
1020
+ await import_fs_extra7.default.outputFile(targetPath, `${data}
965
1021
  `, "utf8");
966
1022
  logger.success(targetPath);
967
1023
  }
968
1024
  } else if (await overwriteOrCopy()) {
969
- await import_fs_extra6.default.copy(
1025
+ await import_fs_extra7.default.copy(
970
1026
  file.path,
971
1027
  targetPath
972
1028
  );
@@ -980,6 +1036,7 @@ async function upgradeMonorepo(opts) {
980
1036
  0 && (module.exports = {
981
1037
  GitClient,
982
1038
  cleanProjects,
1039
+ createNewProject,
983
1040
  escapeStringRegexp,
984
1041
  getFileHash,
985
1042
  getWorkspaceData,
@@ -987,7 +1044,6 @@ async function upgradeMonorepo(opts) {
987
1044
  init,
988
1045
  isFileChanged,
989
1046
  isMatch,
990
- setPkgJson,
991
1047
  setVscodeBinaryMirror,
992
1048
  syncNpmMirror,
993
1049
  upgradeMonorepo
package/dist/index.d.cts CHANGED
@@ -2,9 +2,17 @@ import * as _pnpm_types from '@pnpm/types';
2
2
  import * as simple_git from 'simple-git';
3
3
  import { SimpleGitOptions, ConfigValues } from 'simple-git';
4
4
  import gitUrlParse from 'git-url-parse';
5
- import { PackageJson } from 'pkg-types';
6
5
  import crypto from 'node:crypto';
7
6
 
7
+ type CreateNewProjectType = 'tsup' | 'unbuild' | 'vue-lib' | 'vitepress' | 'hono-server' | 'vue-hono' | 'cli';
8
+ interface CreateNewProjectOptions {
9
+ name?: string;
10
+ cwd?: string;
11
+ renameJson?: boolean;
12
+ type?: CreateNewProjectType;
13
+ }
14
+ declare function createNewProject(options?: CreateNewProjectOptions): Promise<void>;
15
+
8
16
  interface GetWorkspacePackagesOptions {
9
17
  ignoreRootPackage?: boolean;
10
18
  ignorePrivatePackage?: boolean;
@@ -62,7 +70,6 @@ declare function setVscodeBinaryMirror(cwd: string): Promise<void>;
62
70
 
63
71
  declare function syncNpmMirror(cwd: string, options?: GetWorkspacePackagesOptions): Promise<void>;
64
72
 
65
- declare function setPkgJson(sourcePkgJson: PackageJson, targetPkgJson: PackageJson): void;
66
73
  declare function upgradeMonorepo(opts: CliOpts): Promise<void>;
67
74
 
68
75
  declare function getFileHash(data: crypto.BinaryLike): string;
@@ -71,4 +78,4 @@ declare function isFileChanged(src: crypto.BinaryLike, dest: crypto.BinaryLike):
71
78
  declare function escapeStringRegexp(str: string): string;
72
79
  declare function isMatch(str: string, arr: RegExp[]): boolean;
73
80
 
74
- export { type GetWorkspacePackagesOptions, GitClient, cleanProjects, escapeStringRegexp, getFileHash, getWorkspaceData, getWorkspacePackages, init, isFileChanged, isMatch, setPkgJson, setVscodeBinaryMirror, syncNpmMirror, upgradeMonorepo };
81
+ export { type CreateNewProjectOptions, type GetWorkspacePackagesOptions, GitClient, cleanProjects, createNewProject, escapeStringRegexp, getFileHash, getWorkspaceData, getWorkspacePackages, init, isFileChanged, isMatch, setVscodeBinaryMirror, syncNpmMirror, upgradeMonorepo };
package/dist/index.d.ts CHANGED
@@ -2,9 +2,17 @@ import * as _pnpm_types from '@pnpm/types';
2
2
  import * as simple_git from 'simple-git';
3
3
  import { SimpleGitOptions, ConfigValues } from 'simple-git';
4
4
  import gitUrlParse from 'git-url-parse';
5
- import { PackageJson } from 'pkg-types';
6
5
  import crypto from 'node:crypto';
7
6
 
7
+ type CreateNewProjectType = 'tsup' | 'unbuild' | 'vue-lib' | 'vitepress' | 'hono-server' | 'vue-hono' | 'cli';
8
+ interface CreateNewProjectOptions {
9
+ name?: string;
10
+ cwd?: string;
11
+ renameJson?: boolean;
12
+ type?: CreateNewProjectType;
13
+ }
14
+ declare function createNewProject(options?: CreateNewProjectOptions): Promise<void>;
15
+
8
16
  interface GetWorkspacePackagesOptions {
9
17
  ignoreRootPackage?: boolean;
10
18
  ignorePrivatePackage?: boolean;
@@ -62,7 +70,6 @@ declare function setVscodeBinaryMirror(cwd: string): Promise<void>;
62
70
 
63
71
  declare function syncNpmMirror(cwd: string, options?: GetWorkspacePackagesOptions): Promise<void>;
64
72
 
65
- declare function setPkgJson(sourcePkgJson: PackageJson, targetPkgJson: PackageJson): void;
66
73
  declare function upgradeMonorepo(opts: CliOpts): Promise<void>;
67
74
 
68
75
  declare function getFileHash(data: crypto.BinaryLike): string;
@@ -71,4 +78,4 @@ declare function isFileChanged(src: crypto.BinaryLike, dest: crypto.BinaryLike):
71
78
  declare function escapeStringRegexp(str: string): string;
72
79
  declare function isMatch(str: string, arr: RegExp[]): boolean;
73
80
 
74
- export { type GetWorkspacePackagesOptions, GitClient, cleanProjects, escapeStringRegexp, getFileHash, getWorkspaceData, getWorkspacePackages, init, isFileChanged, isMatch, setPkgJson, setVscodeBinaryMirror, syncNpmMirror, upgradeMonorepo };
81
+ export { type CreateNewProjectOptions, type GetWorkspacePackagesOptions, GitClient, cleanProjects, createNewProject, escapeStringRegexp, getFileHash, getWorkspaceData, getWorkspacePackages, init, isFileChanged, isMatch, setVscodeBinaryMirror, syncNpmMirror, upgradeMonorepo };
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  GitClient,
3
3
  cleanProjects,
4
+ createNewProject,
4
5
  escapeStringRegexp,
5
6
  getFileHash,
6
7
  getWorkspaceData,
@@ -9,17 +10,17 @@ import {
9
10
  init_esm_shims,
10
11
  isFileChanged,
11
12
  isMatch,
12
- setPkgJson,
13
13
  setVscodeBinaryMirror,
14
14
  syncNpmMirror,
15
15
  upgradeMonorepo
16
- } from "./chunk-EHVQVCB2.js";
16
+ } from "./chunk-EBATUF3S.js";
17
17
 
18
18
  // src/index.ts
19
19
  init_esm_shims();
20
20
  export {
21
21
  GitClient,
22
22
  cleanProjects,
23
+ createNewProject,
23
24
  escapeStringRegexp,
24
25
  getFileHash,
25
26
  getWorkspaceData,
@@ -27,7 +28,6 @@ export {
27
28
  init,
28
29
  isFileChanged,
29
30
  isMatch,
30
- setPkgJson,
31
31
  setVscodeBinaryMirror,
32
32
  syncNpmMirror,
33
33
  upgradeMonorepo
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@icebreakers/monorepo",
3
3
  "type": "module",
4
- "version": "1.1.8",
4
+ "version": "1.2.0",
5
5
  "description": "The icebreaker's monorepo manager",
6
6
  "author": "ice breaker <1324318532@qq.com>",
7
7
  "license": "MIT",
@@ -60,6 +60,8 @@
60
60
  "@types/klaw": "^3.0.7",
61
61
  "@types/micromatch": "^4.0.9",
62
62
  "@types/set-value": "^4.0.3",
63
+ "fast-glob": "^3.3.3",
64
+ "fdir": "^6.5.0",
63
65
  "get-value": "^4.0.1",
64
66
  "micromatch": "^4.0.8",
65
67
  "set-value": "^4.1.0"
@@ -1,42 +0,0 @@
1
- {
2
- "name": "@icebreakers/tsup-template",
3
- "type": "module",
4
- "version": "0.0.0",
5
- "description": "tsup package template",
6
- "author": "ice breaker <1324318532@qq.com>",
7
- "license": "MIT",
8
- "repository": {
9
- "type": "git",
10
- "url": "git+https://github.com/sonofmagic/monorepo-template.git",
11
- "directory": "packages/tsup-template"
12
- },
13
- "bugs": {
14
- "url": "https://github.com/sonofmagic/monorepo-template/issues"
15
- },
16
- "keywords": [],
17
- "sideEffects": false,
18
- "exports": {
19
- ".": {
20
- "types": "./dist/index.d.ts",
21
- "import": "./dist/index.mjs",
22
- "require": "./dist/index.cjs"
23
- }
24
- },
25
- "main": "./dist/index.cjs",
26
- "module": "./dist/index.mjs",
27
- "types": "./dist/index.d.ts",
28
- "files": [
29
- "dist"
30
- ],
31
- "scripts": {
32
- "stub": "unbuild --stub",
33
- "dev": "tsup --watch --sourcemap",
34
- "build": "tsup",
35
- "test": "vitest run",
36
- "test:dev": "vitest",
37
- "release": "pnpm publish",
38
- "lint": "eslint .",
39
- "lint:fix": "eslint . --fix"
40
- },
41
- "publishConfig": {}
42
- }