@icebreakers/monorepo 3.1.1 → 3.1.2

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.
@@ -44,7 +44,7 @@
44
44
  "@changesets/cli": "^2.29.8",
45
45
  "@commitlint/cli": "^20.2.0",
46
46
  "@icebreakers/commitlint-config": "^1.2.3",
47
- "@icebreakers/eslint-config": "^1.6.3",
47
+ "@icebreakers/eslint-config": "^1.6.4",
48
48
  "@icebreakers/monorepo": "workspace:*",
49
49
  "@icebreakers/stylelint-config": "^1.2.3",
50
50
  "@types/fs-extra": "^11.0.4",
package/dist/cli.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_upgrade = require('./upgrade-D3k24_vK.cjs');
1
+ const require_upgrade = require('./upgrade-BUKca70w.cjs');
2
2
  let node_process = require("node:process");
3
3
  node_process = require_upgrade.__toESM(node_process);
4
4
  let __inquirer_input = require("@inquirer/input");
package/dist/cli.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { A as defaultAgenticBaseDir, C as name, M as generateAgenticTemplates, N as loadAgenticTasks, O as resolveCommandConfig, P as logger, T as cleanProjects, c as getCreateChoices, i as init, j as generateAgenticTemplate, k as createTimestampFolderName, n as syncNpmMirror, o as createNewProject, r as setVscodeBinaryMirror, s as defaultTemplate, t as upgradeMonorepo, w as version } from "./upgrade-DcCr5GIw.mjs";
1
+ import { A as defaultAgenticBaseDir, C as name, M as generateAgenticTemplates, N as loadAgenticTasks, O as resolveCommandConfig, P as logger, T as cleanProjects, c as getCreateChoices, i as init, j as generateAgenticTemplate, k as createTimestampFolderName, n as syncNpmMirror, o as createNewProject, r as setVscodeBinaryMirror, s as defaultTemplate, t as upgradeMonorepo, w as version } from "./upgrade-B1j5KS32.mjs";
2
2
  import process from "node:process";
3
3
  import input from "@inquirer/input";
4
4
  import select from "@inquirer/select";
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_upgrade = require('./upgrade-D3k24_vK.cjs');
1
+ const require_upgrade = require('./upgrade-BUKca70w.cjs');
2
2
 
3
3
  exports.GitClient = require_upgrade.GitClient;
4
4
  exports.assetsDir = require_upgrade.assetsDir;
package/dist/index.mjs CHANGED
@@ -1,3 +1,3 @@
1
- import { A as defaultAgenticBaseDir, C as name, D as loadMonorepoConfig, E as defineMonorepoConfig, F as getWorkspaceData, I as getWorkspacePackages, L as GitClient, M as generateAgenticTemplates, N as loadAgenticTasks, O as resolveCommandConfig, P as logger, S as templatesDir, T as cleanProjects, _ as toWorkspaceGitignorePath, a as createContext, b as packageDir, c as getCreateChoices, d as escapeStringRegexp, f as isMatch, g as toPublishGitignorePath, h as isGitignoreFile, i as init, j as generateAgenticTemplate, k as createTimestampFolderName, l as getTemplateMap, m as isFileChanged, n as syncNpmMirror, o as createNewProject, p as getFileHash, r as setVscodeBinaryMirror, t as upgradeMonorepo, u as templateMap, v as isIgnorableFsError, w as version, x as rootDir, y as assetsDir } from "./upgrade-DcCr5GIw.mjs";
1
+ import { A as defaultAgenticBaseDir, C as name, D as loadMonorepoConfig, E as defineMonorepoConfig, F as getWorkspaceData, I as getWorkspacePackages, L as GitClient, M as generateAgenticTemplates, N as loadAgenticTasks, O as resolveCommandConfig, P as logger, S as templatesDir, T as cleanProjects, _ as toWorkspaceGitignorePath, a as createContext, b as packageDir, c as getCreateChoices, d as escapeStringRegexp, f as isMatch, g as toPublishGitignorePath, h as isGitignoreFile, i as init, j as generateAgenticTemplate, k as createTimestampFolderName, l as getTemplateMap, m as isFileChanged, n as syncNpmMirror, o as createNewProject, p as getFileHash, r as setVscodeBinaryMirror, t as upgradeMonorepo, u as templateMap, v as isIgnorableFsError, w as version, x as rootDir, y as assetsDir } from "./upgrade-B1j5KS32.mjs";
2
2
 
3
3
  export { GitClient, assetsDir, cleanProjects, createContext, createNewProject, createTimestampFolderName, defaultAgenticBaseDir, defineMonorepoConfig, escapeStringRegexp, generateAgenticTemplate, generateAgenticTemplates, getCreateChoices, getFileHash, getTemplateMap, getWorkspaceData, getWorkspacePackages, init, isFileChanged, isGitignoreFile, isIgnorableFsError, isMatch, loadAgenticTasks, loadMonorepoConfig, logger, name, packageDir, resolveCommandConfig, rootDir, setVscodeBinaryMirror, syncNpmMirror, templateMap, templatesDir, toPublishGitignorePath, toWorkspaceGitignorePath, upgradeMonorepo, version };
@@ -19,6 +19,7 @@ import os from "node:os";
19
19
  import { execaCommand } from "execa";
20
20
  import PQueue from "p-queue";
21
21
  import klaw from "klaw";
22
+ import YAML from "yaml";
22
23
  import { Buffer as Buffer$1 } from "node:buffer";
23
24
  import { coerce, gte, minVersion } from "semver";
24
25
 
@@ -187,7 +188,7 @@ var GitClient = class {
187
188
 
188
189
  //#endregion
189
190
  //#region ../../node_modules/.pnpm/defu@6.1.4/node_modules/defu/dist/defu.mjs
190
- function isPlainObject$1(value) {
191
+ function isPlainObject$2(value) {
191
192
  if (value === null || typeof value !== "object") return false;
192
193
  const prototype = Object.getPrototypeOf(value);
193
194
  if (prototype !== null && prototype !== Object.prototype && Object.getPrototypeOf(prototype) !== null) return false;
@@ -196,7 +197,7 @@ function isPlainObject$1(value) {
196
197
  return true;
197
198
  }
198
199
  function _defu(baseObject, defaults, namespace = ".", merger) {
199
- if (!isPlainObject$1(defaults)) return _defu(baseObject, {}, namespace, merger);
200
+ if (!isPlainObject$2(defaults)) return _defu(baseObject, {}, namespace, merger);
200
201
  const object = Object.assign({}, defaults);
201
202
  for (const key in baseObject) {
202
203
  if (key === "__proto__" || key === "constructor") continue;
@@ -204,7 +205,7 @@ function _defu(baseObject, defaults, namespace = ".", merger) {
204
205
  if (value === null || value === void 0) continue;
205
206
  if (merger && merger(object, key, value, namespace)) continue;
206
207
  if (Array.isArray(value) && Array.isArray(object[key])) object[key] = [...value, ...object[key]];
207
- else if (isPlainObject$1(value) && isPlainObject$1(object[key])) object[key] = _defu(value, object[key], (namespace ? `${namespace}.` : "") + key.toString(), merger);
208
+ else if (isPlainObject$2(value) && isPlainObject$2(object[key])) object[key] = _defu(value, object[key], (namespace ? `${namespace}.` : "") + key.toString(), merger);
208
209
  else object[key] = value;
209
210
  }
210
211
  return object;
@@ -384,7 +385,7 @@ var require_is_plain_object = /* @__PURE__ */ __commonJSMin(((exports, module) =
384
385
  function isObjectObject(o) {
385
386
  return isObject$1(o) === true && Object.prototype.toString.call(o) === "[object Object]";
386
387
  }
387
- module.exports = function isPlainObject$2(o) {
388
+ module.exports = function isPlainObject$3(o) {
388
389
  var ctor, prot;
389
390
  if (isObjectObject(o) === false) return false;
390
391
  ctor = o.constructor;
@@ -407,7 +408,7 @@ var require_is_plain_object = /* @__PURE__ */ __commonJSMin(((exports, module) =
407
408
  var require_set_value = /* @__PURE__ */ __commonJSMin(((exports, module) => {
408
409
  const { deleteProperty } = Reflect;
409
410
  const isPrimitive = require_is_primitive();
410
- const isPlainObject = require_is_plain_object();
411
+ const isPlainObject$1 = require_is_plain_object();
411
412
  const isObject = (value) => {
412
413
  return typeof value === "object" && value !== null || typeof value === "function";
413
414
  };
@@ -476,7 +477,7 @@ var require_set_value = /* @__PURE__ */ __commonJSMin(((exports, module) => {
476
477
  if (value === void 0) deleteProperty(obj, prop);
477
478
  else if (options && options.merge) {
478
479
  const merge = options.merge === "function" ? options.merge : Object.assign;
479
- if (merge && isPlainObject(obj[prop]) && isPlainObject(value)) obj[prop] = merge(obj[prop], value);
480
+ if (merge && isPlainObject$1(obj[prop]) && isPlainObject$1(value)) obj[prop] = merge(obj[prop], value);
480
481
  else obj[prop] = value;
481
482
  } else obj[prop] = value;
482
483
  return obj;
@@ -604,7 +605,7 @@ async function cleanProjects(cwd, overrides) {
604
605
  //#endregion
605
606
  //#region package.json
606
607
  var name = "@icebreakers/monorepo";
607
- var version = "3.1.1";
608
+ var version = "3.1.2";
608
609
 
609
610
  //#endregion
610
611
  //#region src/constants.ts
@@ -1257,6 +1258,47 @@ function getAssetTargets(core) {
1257
1258
  return list;
1258
1259
  }
1259
1260
 
1261
+ //#endregion
1262
+ //#region src/commands/upgrade/workspace.ts
1263
+ function isPlainObject(value) {
1264
+ return typeof value === "object" && value !== null && !Array.isArray(value);
1265
+ }
1266
+ function normalizeWorkspaceManifest(manifest) {
1267
+ if (isPlainObject(manifest)) return { ...manifest };
1268
+ return {};
1269
+ }
1270
+ function mergeUniqueArray(target, source) {
1271
+ const result = [...target];
1272
+ for (const item of source) if (!result.includes(item)) result.push(item);
1273
+ return result;
1274
+ }
1275
+ /**
1276
+ * Merge pnpm workspace manifests by filling missing fields only.
1277
+ * Existing values take precedence; arrays are deduped while keeping target order.
1278
+ */
1279
+ function mergeWorkspaceManifest(source, target) {
1280
+ const normalizedSource = normalizeWorkspaceManifest(source);
1281
+ const normalizedTarget = normalizeWorkspaceManifest(target);
1282
+ const result = { ...normalizedTarget };
1283
+ for (const [key, value] of Object.entries(normalizedSource)) {
1284
+ const current = normalizedTarget[key];
1285
+ if (current === void 0) {
1286
+ result[key] = value;
1287
+ continue;
1288
+ }
1289
+ if (Array.isArray(current) && Array.isArray(value)) {
1290
+ result[key] = mergeUniqueArray(current, value);
1291
+ continue;
1292
+ }
1293
+ if (isPlainObject(current) && isPlainObject(value)) {
1294
+ result[key] = mergeWorkspaceManifest(value, current);
1295
+ continue;
1296
+ }
1297
+ result[key] = current;
1298
+ }
1299
+ return result;
1300
+ }
1301
+
1260
1302
  //#endregion
1261
1303
  //#region src/commands/upgrade/index.ts
1262
1304
  var import_set_value = /* @__PURE__ */ __toESM(require_set_value(), 1);
@@ -1327,6 +1369,28 @@ async function upgradeMonorepo(opts) {
1327
1369
  });
1328
1370
  continue;
1329
1371
  }
1372
+ if (relPath === "pnpm-workspace.yaml") {
1373
+ const sourceManifest = normalizeWorkspaceManifest(YAML.parse(await fs.readFile(file.path, "utf8")));
1374
+ const exists = await fs.pathExists(targetPath);
1375
+ const targetManifest = exists ? normalizeWorkspaceManifest(YAML.parse(await fs.readFile(targetPath, "utf8"))) : normalizeWorkspaceManifest({});
1376
+ const mergedManifest = exists ? mergeWorkspaceManifest(sourceManifest, targetManifest) : sourceManifest;
1377
+ const data = YAML.stringify(mergedManifest);
1378
+ const intent$1 = await evaluateWriteIntent(targetPath, {
1379
+ skipOverwrite,
1380
+ source: data
1381
+ });
1382
+ const action$1 = async () => {
1383
+ await fs.outputFile(targetPath, data, "utf8");
1384
+ logger.success(targetPath);
1385
+ };
1386
+ await scheduleOverwrite(intent$1, {
1387
+ relPath,
1388
+ targetPath,
1389
+ action: action$1,
1390
+ pending: pendingOverwrites
1391
+ });
1392
+ continue;
1393
+ }
1330
1394
  if (relPath === ".changeset/config.json" && repoName) {
1331
1395
  const changesetJson = await fs.readJson(file.path);
1332
1396
  (0, import_set_value.default)(changesetJson, "changelog.1.repo", repoName);
@@ -58,6 +58,8 @@ let p_queue = require("p-queue");
58
58
  p_queue = __toESM(p_queue);
59
59
  let klaw = require("klaw");
60
60
  klaw = __toESM(klaw);
61
+ let yaml = require("yaml");
62
+ yaml = __toESM(yaml);
61
63
  let node_buffer = require("node:buffer");
62
64
  let semver = require("semver");
63
65
 
@@ -198,7 +200,7 @@ var GitClient = class {
198
200
 
199
201
  //#endregion
200
202
  //#region ../../node_modules/.pnpm/defu@6.1.4/node_modules/defu/dist/defu.mjs
201
- function isPlainObject$1(value) {
203
+ function isPlainObject$2(value) {
202
204
  if (value === null || typeof value !== "object") return false;
203
205
  const prototype = Object.getPrototypeOf(value);
204
206
  if (prototype !== null && prototype !== Object.prototype && Object.getPrototypeOf(prototype) !== null) return false;
@@ -207,7 +209,7 @@ function isPlainObject$1(value) {
207
209
  return true;
208
210
  }
209
211
  function _defu(baseObject, defaults, namespace = ".", merger) {
210
- if (!isPlainObject$1(defaults)) return _defu(baseObject, {}, namespace, merger);
212
+ if (!isPlainObject$2(defaults)) return _defu(baseObject, {}, namespace, merger);
211
213
  const object = Object.assign({}, defaults);
212
214
  for (const key in baseObject) {
213
215
  if (key === "__proto__" || key === "constructor") continue;
@@ -215,7 +217,7 @@ function _defu(baseObject, defaults, namespace = ".", merger) {
215
217
  if (value === null || value === void 0) continue;
216
218
  if (merger && merger(object, key, value, namespace)) continue;
217
219
  if (Array.isArray(value) && Array.isArray(object[key])) object[key] = [...value, ...object[key]];
218
- else if (isPlainObject$1(value) && isPlainObject$1(object[key])) object[key] = _defu(value, object[key], (namespace ? `${namespace}.` : "") + key.toString(), merger);
220
+ else if (isPlainObject$2(value) && isPlainObject$2(object[key])) object[key] = _defu(value, object[key], (namespace ? `${namespace}.` : "") + key.toString(), merger);
219
221
  else object[key] = value;
220
222
  }
221
223
  return object;
@@ -395,7 +397,7 @@ var require_is_plain_object = /* @__PURE__ */ __commonJSMin(((exports, module) =
395
397
  function isObjectObject(o) {
396
398
  return isObject$1(o) === true && Object.prototype.toString.call(o) === "[object Object]";
397
399
  }
398
- module.exports = function isPlainObject$2(o) {
400
+ module.exports = function isPlainObject$3(o) {
399
401
  var ctor, prot;
400
402
  if (isObjectObject(o) === false) return false;
401
403
  ctor = o.constructor;
@@ -418,7 +420,7 @@ var require_is_plain_object = /* @__PURE__ */ __commonJSMin(((exports, module) =
418
420
  var require_set_value = /* @__PURE__ */ __commonJSMin(((exports, module) => {
419
421
  const { deleteProperty } = Reflect;
420
422
  const isPrimitive = require_is_primitive();
421
- const isPlainObject = require_is_plain_object();
423
+ const isPlainObject$1 = require_is_plain_object();
422
424
  const isObject = (value) => {
423
425
  return typeof value === "object" && value !== null || typeof value === "function";
424
426
  };
@@ -487,7 +489,7 @@ var require_set_value = /* @__PURE__ */ __commonJSMin(((exports, module) => {
487
489
  if (value === void 0) deleteProperty(obj, prop);
488
490
  else if (options && options.merge) {
489
491
  const merge = options.merge === "function" ? options.merge : Object.assign;
490
- if (merge && isPlainObject(obj[prop]) && isPlainObject(value)) obj[prop] = merge(obj[prop], value);
492
+ if (merge && isPlainObject$1(obj[prop]) && isPlainObject$1(value)) obj[prop] = merge(obj[prop], value);
491
493
  else obj[prop] = value;
492
494
  } else obj[prop] = value;
493
495
  return obj;
@@ -615,7 +617,7 @@ async function cleanProjects(cwd, overrides) {
615
617
  //#endregion
616
618
  //#region package.json
617
619
  var name = "@icebreakers/monorepo";
618
- var version = "3.1.1";
620
+ var version = "3.1.2";
619
621
 
620
622
  //#endregion
621
623
  //#region src/constants.ts
@@ -1268,6 +1270,47 @@ function getAssetTargets(core) {
1268
1270
  return list;
1269
1271
  }
1270
1272
 
1273
+ //#endregion
1274
+ //#region src/commands/upgrade/workspace.ts
1275
+ function isPlainObject(value) {
1276
+ return typeof value === "object" && value !== null && !Array.isArray(value);
1277
+ }
1278
+ function normalizeWorkspaceManifest(manifest) {
1279
+ if (isPlainObject(manifest)) return { ...manifest };
1280
+ return {};
1281
+ }
1282
+ function mergeUniqueArray(target, source) {
1283
+ const result = [...target];
1284
+ for (const item of source) if (!result.includes(item)) result.push(item);
1285
+ return result;
1286
+ }
1287
+ /**
1288
+ * Merge pnpm workspace manifests by filling missing fields only.
1289
+ * Existing values take precedence; arrays are deduped while keeping target order.
1290
+ */
1291
+ function mergeWorkspaceManifest(source, target) {
1292
+ const normalizedSource = normalizeWorkspaceManifest(source);
1293
+ const normalizedTarget = normalizeWorkspaceManifest(target);
1294
+ const result = { ...normalizedTarget };
1295
+ for (const [key, value] of Object.entries(normalizedSource)) {
1296
+ const current = normalizedTarget[key];
1297
+ if (current === void 0) {
1298
+ result[key] = value;
1299
+ continue;
1300
+ }
1301
+ if (Array.isArray(current) && Array.isArray(value)) {
1302
+ result[key] = mergeUniqueArray(current, value);
1303
+ continue;
1304
+ }
1305
+ if (isPlainObject(current) && isPlainObject(value)) {
1306
+ result[key] = mergeWorkspaceManifest(value, current);
1307
+ continue;
1308
+ }
1309
+ result[key] = current;
1310
+ }
1311
+ return result;
1312
+ }
1313
+
1271
1314
  //#endregion
1272
1315
  //#region src/commands/upgrade/index.ts
1273
1316
  var import_set_value = /* @__PURE__ */ __toESM(require_set_value(), 1);
@@ -1338,6 +1381,28 @@ async function upgradeMonorepo(opts) {
1338
1381
  });
1339
1382
  continue;
1340
1383
  }
1384
+ if (relPath === "pnpm-workspace.yaml") {
1385
+ const sourceManifest = normalizeWorkspaceManifest(yaml.default.parse(await fs_extra.default.readFile(file.path, "utf8")));
1386
+ const exists = await fs_extra.default.pathExists(targetPath);
1387
+ const targetManifest = exists ? normalizeWorkspaceManifest(yaml.default.parse(await fs_extra.default.readFile(targetPath, "utf8"))) : normalizeWorkspaceManifest({});
1388
+ const mergedManifest = exists ? mergeWorkspaceManifest(sourceManifest, targetManifest) : sourceManifest;
1389
+ const data = yaml.default.stringify(mergedManifest);
1390
+ const intent$1 = await evaluateWriteIntent(targetPath, {
1391
+ skipOverwrite,
1392
+ source: data
1393
+ });
1394
+ const action$1 = async () => {
1395
+ await fs_extra.default.outputFile(targetPath, data, "utf8");
1396
+ logger.success(targetPath);
1397
+ };
1398
+ await scheduleOverwrite(intent$1, {
1399
+ relPath,
1400
+ targetPath,
1401
+ action: action$1,
1402
+ pending: pendingOverwrites
1403
+ });
1404
+ continue;
1405
+ }
1341
1406
  if (relPath === ".changeset/config.json" && repoName) {
1342
1407
  const changesetJson = await fs_extra.default.readJson(file.path);
1343
1408
  (0, import_set_value.default)(changesetJson, "changelog.1.repo", repoName);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@icebreakers/monorepo",
3
3
  "type": "module",
4
- "version": "3.1.1",
4
+ "version": "3.1.2",
5
5
  "description": "The icebreaker's monorepo manager",
6
6
  "author": "ice breaker <1324318532@qq.com>",
7
7
  "license": "MIT",
@@ -79,7 +79,8 @@
79
79
  "pathe": "^2.0.3",
80
80
  "picocolors": "^1.1.1",
81
81
  "semver": "^7.7.3",
82
- "simple-git": "^3.30.0"
82
+ "simple-git": "^3.30.0",
83
+ "yaml": "^2.8.2"
83
84
  },
84
85
  "devDependencies": {
85
86
  "@types/klaw": "^3.0.7",
@@ -44,7 +44,7 @@
44
44
  "vite": "^7.2.6",
45
45
  "vite-plugin-vue-devtools": "^8.0.5",
46
46
  "vite-tsconfig-paths": "^5.1.4",
47
- "vue-tsc": "3.1.5",
47
+ "vue-tsc": "3.1.6",
48
48
  "wrangler": "^4.53.0",
49
49
  "zod": "^4.1.13"
50
50
  }
@@ -56,6 +56,6 @@
56
56
  "vite-plugin-dts": "^4.5.4",
57
57
  "vue": "^3.5.25",
58
58
  "vue-router": "^4.6.3",
59
- "vue-tsc": "^3.1.5"
59
+ "vue-tsc": "^3.1.6"
60
60
  }
61
61
  }