@icebreakers/monorepo 3.2.13 → 3.2.14
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.
- package/dist/cli.cjs +6 -10
- package/dist/cli.mjs +6 -10
- package/dist/index.cjs +28 -29
- package/dist/index.mjs +2 -3
- package/dist/{upgrade-DiPTZW6J.mjs → upgrade-BGgjWFfq.mjs} +32 -75
- package/dist/{upgrade-DjOZstRC.cjs → upgrade-C2M-cSL9.cjs} +217 -260
- package/package.json +7 -7
package/dist/cli.cjs
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
const require_upgrade = require(
|
|
1
|
+
const require_upgrade = require("./upgrade-C2M-cSL9.cjs");
|
|
2
2
|
let node_process = require("node:process");
|
|
3
3
|
node_process = require_upgrade.__toESM(node_process);
|
|
4
4
|
let _icebreakers_monorepo_templates = require("@icebreakers/monorepo-templates");
|
|
5
|
-
|
|
6
5
|
//#region src/cli/program.ts
|
|
7
6
|
const cwd = node_process.default.cwd();
|
|
8
7
|
_icebreakers_monorepo_templates.program.name(require_upgrade.name).version(require_upgrade.version);
|
|
@@ -46,7 +45,7 @@ _icebreakers_monorepo_templates.program.command("skills").description("技能工
|
|
|
46
45
|
}
|
|
47
46
|
const results = await require_upgrade.syncSkills(selected.size ? {
|
|
48
47
|
cwd,
|
|
49
|
-
targets:
|
|
48
|
+
targets: [...selected]
|
|
50
49
|
} : { cwd });
|
|
51
50
|
if (!results.length) {
|
|
52
51
|
require_upgrade.logger.info("未选择任何目标,已跳过同步。");
|
|
@@ -60,7 +59,7 @@ _icebreakers_monorepo_templates.program.command("ai").description("AI 助手工
|
|
|
60
59
|
const format = opts.format ?? aiConfig?.format ?? "md";
|
|
61
60
|
const force = opts.force ?? aiConfig?.force ?? false;
|
|
62
61
|
const output = opts.output ?? aiConfig?.output;
|
|
63
|
-
const baseDir = opts.dir ?? aiConfig?.baseDir ??
|
|
62
|
+
const baseDir = opts.dir ?? aiConfig?.baseDir ?? "agentic/prompts";
|
|
64
63
|
const tasksFile = opts.tasks ?? aiConfig?.tasksFile;
|
|
65
64
|
const templateName = opts.name;
|
|
66
65
|
if (Boolean(tasksFile && !opts.output && !opts.name)) {
|
|
@@ -102,7 +101,7 @@ _icebreakers_monorepo_templates.program.command("new").description("创建一个
|
|
|
102
101
|
const type = await (0, _icebreakers_monorepo_templates.select)({
|
|
103
102
|
message: "请选择模板类型",
|
|
104
103
|
choices: require_upgrade.getCreateChoices(createConfig?.choices),
|
|
105
|
-
default: createConfig?.type ?? createConfig?.defaultTemplate ??
|
|
104
|
+
default: createConfig?.type ?? createConfig?.defaultTemplate ?? "unbuild"
|
|
106
105
|
});
|
|
107
106
|
await require_upgrade.createNewProject({
|
|
108
107
|
name: packageName,
|
|
@@ -111,10 +110,7 @@ _icebreakers_monorepo_templates.program.command("new").description("创建一个
|
|
|
111
110
|
});
|
|
112
111
|
require_upgrade.logger.success("create a package");
|
|
113
112
|
});
|
|
114
|
-
var program_default = _icebreakers_monorepo_templates.program;
|
|
115
|
-
|
|
116
113
|
//#endregion
|
|
117
114
|
//#region src/cli.ts
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
//#endregion
|
|
115
|
+
_icebreakers_monorepo_templates.program.parse();
|
|
116
|
+
//#endregion
|
package/dist/cli.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { C as syncSkills, F as generateAgenticTemplate, I as generateAgenticTemplates, L as loadAgenticTasks, M as resolveCommandConfig, N as createTimestampFolderName, O as name,
|
|
1
|
+
import { C as syncSkills, F as generateAgenticTemplate, I as generateAgenticTemplates, L as loadAgenticTasks, M as resolveCommandConfig, N as createTimestampFolderName, O as name, R as logger, S as skillTargets, _ as getCreateChoices, b as cleanProjects, h as createNewProject, i as init, k as version, n as syncNpmMirror, r as setVscodeBinaryMirror, t as upgradeMonorepo } from "./upgrade-BGgjWFfq.mjs";
|
|
2
2
|
import process from "node:process";
|
|
3
3
|
import { input, program, select } from "@icebreakers/monorepo-templates";
|
|
4
|
-
|
|
5
4
|
//#region src/cli/program.ts
|
|
6
5
|
const cwd = process.cwd();
|
|
7
6
|
program.name(name).version(version);
|
|
@@ -45,7 +44,7 @@ program.command("skills").description("技能工具集").command("sync").descrip
|
|
|
45
44
|
}
|
|
46
45
|
const results = await syncSkills(selected.size ? {
|
|
47
46
|
cwd,
|
|
48
|
-
targets:
|
|
47
|
+
targets: [...selected]
|
|
49
48
|
} : { cwd });
|
|
50
49
|
if (!results.length) {
|
|
51
50
|
logger.info("未选择任何目标,已跳过同步。");
|
|
@@ -59,7 +58,7 @@ program.command("ai").description("AI 助手工具集").command("create").alias(
|
|
|
59
58
|
const format = opts.format ?? aiConfig?.format ?? "md";
|
|
60
59
|
const force = opts.force ?? aiConfig?.force ?? false;
|
|
61
60
|
const output = opts.output ?? aiConfig?.output;
|
|
62
|
-
const baseDir = opts.dir ?? aiConfig?.baseDir ??
|
|
61
|
+
const baseDir = opts.dir ?? aiConfig?.baseDir ?? "agentic/prompts";
|
|
63
62
|
const tasksFile = opts.tasks ?? aiConfig?.tasksFile;
|
|
64
63
|
const templateName = opts.name;
|
|
65
64
|
if (Boolean(tasksFile && !opts.output && !opts.name)) {
|
|
@@ -101,7 +100,7 @@ program.command("new").description("创建一个新的子包").alias("create").a
|
|
|
101
100
|
const type = await select({
|
|
102
101
|
message: "请选择模板类型",
|
|
103
102
|
choices: getCreateChoices(createConfig?.choices),
|
|
104
|
-
default: createConfig?.type ?? createConfig?.defaultTemplate ??
|
|
103
|
+
default: createConfig?.type ?? createConfig?.defaultTemplate ?? "unbuild"
|
|
105
104
|
});
|
|
106
105
|
await createNewProject({
|
|
107
106
|
name: packageName,
|
|
@@ -110,11 +109,8 @@ program.command("new").description("创建一个新的子包").alias("create").a
|
|
|
110
109
|
});
|
|
111
110
|
logger.success("create a package");
|
|
112
111
|
});
|
|
113
|
-
var program_default = program;
|
|
114
|
-
|
|
115
112
|
//#endregion
|
|
116
113
|
//#region src/cli.ts
|
|
117
|
-
|
|
118
|
-
|
|
114
|
+
program.parse();
|
|
119
115
|
//#endregion
|
|
120
|
-
export {
|
|
116
|
+
export {};
|
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
2
|
-
const require_upgrade = require(
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_upgrade = require("./upgrade-C2M-cSL9.cjs");
|
|
3
3
|
let _icebreakers_monorepo_templates = require("@icebreakers/monorepo-templates");
|
|
4
|
-
|
|
5
4
|
exports.GitClient = require_upgrade.GitClient;
|
|
6
5
|
exports.assetsDir = _icebreakers_monorepo_templates.assetsDir;
|
|
7
6
|
exports.cleanProjects = require_upgrade.cleanProjects;
|
|
@@ -21,22 +20,22 @@ exports.getWorkspaceData = require_upgrade.getWorkspaceData;
|
|
|
21
20
|
exports.getWorkspacePackages = require_upgrade.getWorkspacePackages;
|
|
22
21
|
exports.init = require_upgrade.init;
|
|
23
22
|
exports.isFileChanged = require_upgrade.isFileChanged;
|
|
24
|
-
Object.defineProperty(exports,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
Object.defineProperty(exports, "isGitignoreFile", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function() {
|
|
26
|
+
return _icebreakers_monorepo_templates.isGitignoreFile;
|
|
27
|
+
}
|
|
29
28
|
});
|
|
30
29
|
exports.isIgnorableFsError = require_upgrade.isIgnorableFsError;
|
|
31
30
|
exports.isMatch = require_upgrade.isMatch;
|
|
32
31
|
exports.loadAgenticTasks = require_upgrade.loadAgenticTasks;
|
|
33
32
|
exports.loadMonorepoConfig = require_upgrade.loadMonorepoConfig;
|
|
34
33
|
exports.logger = require_upgrade.logger;
|
|
35
|
-
Object.defineProperty(exports,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
Object.defineProperty(exports, "name", {
|
|
35
|
+
enumerable: true,
|
|
36
|
+
get: function() {
|
|
37
|
+
return require_upgrade.name;
|
|
38
|
+
}
|
|
40
39
|
});
|
|
41
40
|
exports.packageDir = require_upgrade.packageDir;
|
|
42
41
|
exports.resolveCommandConfig = require_upgrade.resolveCommandConfig;
|
|
@@ -47,23 +46,23 @@ exports.syncNpmMirror = require_upgrade.syncNpmMirror;
|
|
|
47
46
|
exports.syncSkills = require_upgrade.syncSkills;
|
|
48
47
|
exports.templateMap = require_upgrade.templateMap;
|
|
49
48
|
exports.templatesDir = _icebreakers_monorepo_templates.templatesDir;
|
|
50
|
-
Object.defineProperty(exports,
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
49
|
+
Object.defineProperty(exports, "toPublishGitignorePath", {
|
|
50
|
+
enumerable: true,
|
|
51
|
+
get: function() {
|
|
52
|
+
return _icebreakers_monorepo_templates.toPublishGitignorePath;
|
|
53
|
+
}
|
|
55
54
|
});
|
|
56
|
-
Object.defineProperty(exports,
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
Object.defineProperty(exports, "toWorkspaceGitignorePath", {
|
|
56
|
+
enumerable: true,
|
|
57
|
+
get: function() {
|
|
58
|
+
return _icebreakers_monorepo_templates.toWorkspaceGitignorePath;
|
|
59
|
+
}
|
|
61
60
|
});
|
|
62
61
|
exports.updateIssueTemplateConfig = require_upgrade.updateIssueTemplateConfig;
|
|
63
62
|
exports.upgradeMonorepo = require_upgrade.upgradeMonorepo;
|
|
64
|
-
Object.defineProperty(exports,
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
});
|
|
63
|
+
Object.defineProperty(exports, "version", {
|
|
64
|
+
enumerable: true,
|
|
65
|
+
get: function() {
|
|
66
|
+
return require_upgrade.version;
|
|
67
|
+
}
|
|
68
|
+
});
|
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { A as defineMonorepoConfig, B as getWorkspacePackages, C as syncSkills, D as templatesDir, E as rootDir, F as generateAgenticTemplate, I as generateAgenticTemplates, L as loadAgenticTasks, M as resolveCommandConfig, N as createTimestampFolderName, O as name, P as defaultAgenticBaseDir, R as logger, S as skillTargets, T as packageDir, V as GitClient, _ as getCreateChoices, a as escapeStringRegexp, b as cleanProjects, c as isFileChanged, d as toWorkspaceGitignorePath, f as updateIssueTemplateConfig, h as createNewProject, i as init, j as loadMonorepoConfig, k as version, l as isGitignoreFile, m as createContext, n as syncNpmMirror, o as isMatch, p as isIgnorableFsError, r as setVscodeBinaryMirror, s as getFileHash, t as upgradeMonorepo, u as toPublishGitignorePath, v as getTemplateMap, w as assetsDir, x as getSkillTargetPaths, y as templateMap, z as getWorkspaceData } from "./upgrade-
|
|
2
|
-
|
|
3
|
-
export { GitClient, assetsDir, cleanProjects, createContext, createNewProject, createTimestampFolderName, defaultAgenticBaseDir, defineMonorepoConfig, escapeStringRegexp, generateAgenticTemplate, generateAgenticTemplates, getCreateChoices, getFileHash, getSkillTargetPaths, getTemplateMap, getWorkspaceData, getWorkspacePackages, init, isFileChanged, isGitignoreFile, isIgnorableFsError, isMatch, loadAgenticTasks, loadMonorepoConfig, logger, name, packageDir, resolveCommandConfig, rootDir, setVscodeBinaryMirror, skillTargets, syncNpmMirror, syncSkills, templateMap, templatesDir, toPublishGitignorePath, toWorkspaceGitignorePath, updateIssueTemplateConfig, upgradeMonorepo, version };
|
|
1
|
+
import { A as defineMonorepoConfig, B as getWorkspacePackages, C as syncSkills, D as templatesDir, E as rootDir, F as generateAgenticTemplate, I as generateAgenticTemplates, L as loadAgenticTasks, M as resolveCommandConfig, N as createTimestampFolderName, O as name, P as defaultAgenticBaseDir, R as logger, S as skillTargets, T as packageDir, V as GitClient, _ as getCreateChoices, a as escapeStringRegexp, b as cleanProjects, c as isFileChanged, d as toWorkspaceGitignorePath, f as updateIssueTemplateConfig, h as createNewProject, i as init, j as loadMonorepoConfig, k as version, l as isGitignoreFile, m as createContext, n as syncNpmMirror, o as isMatch, p as isIgnorableFsError, r as setVscodeBinaryMirror, s as getFileHash, t as upgradeMonorepo, u as toPublishGitignorePath, v as getTemplateMap, w as assetsDir, x as getSkillTargetPaths, y as templateMap, z as getWorkspaceData } from "./upgrade-BGgjWFfq.mjs";
|
|
2
|
+
export { GitClient, assetsDir, cleanProjects, createContext, createNewProject, createTimestampFolderName, defaultAgenticBaseDir, defineMonorepoConfig, escapeStringRegexp, generateAgenticTemplate, generateAgenticTemplates, getCreateChoices, getFileHash, getSkillTargetPaths, getTemplateMap, getWorkspaceData, getWorkspacePackages, init, isFileChanged, isGitignoreFile, isIgnorableFsError, isMatch, loadAgenticTasks, loadMonorepoConfig, logger, name, packageDir, resolveCommandConfig, rootDir, setVscodeBinaryMirror, skillTargets, syncNpmMirror, syncSkills, templateMap, templatesDir, toPublishGitignorePath, toWorkspaceGitignorePath, updateIssueTemplateConfig, upgradeMonorepo, version };
|
|
@@ -21,7 +21,6 @@ import PQueue from "p-queue";
|
|
|
21
21
|
import klaw from "klaw";
|
|
22
22
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
23
23
|
import { coerce, gte, minVersion } from "semver";
|
|
24
|
-
|
|
25
24
|
//#region \0rolldown/runtime.js
|
|
26
25
|
var __create = Object.create;
|
|
27
26
|
var __defProp$1 = Object.defineProperty;
|
|
@@ -31,16 +30,12 @@ var __getProtoOf = Object.getPrototypeOf;
|
|
|
31
30
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
32
31
|
var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
33
32
|
var __copyProps = (to, from, except, desc) => {
|
|
34
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
}
|
|
33
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
34
|
+
key = keys[i];
|
|
35
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp$1(to, key, {
|
|
36
|
+
get: ((k) => from[k]).bind(null, key),
|
|
37
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
38
|
+
});
|
|
44
39
|
}
|
|
45
40
|
return to;
|
|
46
41
|
};
|
|
@@ -48,7 +43,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
48
43
|
value: mod,
|
|
49
44
|
enumerable: true
|
|
50
45
|
}) : target, mod));
|
|
51
|
-
|
|
52
46
|
//#endregion
|
|
53
47
|
//#region ../../node_modules/.pnpm/get-value@4.0.1/node_modules/get-value/dist/index.mjs
|
|
54
48
|
var __defProp = Object.defineProperty;
|
|
@@ -116,7 +110,6 @@ var index_default = /* @__PURE__ */ __name((target, path, options = {}) => {
|
|
|
116
110
|
* Copyright (c) 2014-present, Jon Schlinkert.
|
|
117
111
|
* Released under the MIT License.
|
|
118
112
|
*/
|
|
119
|
-
|
|
120
113
|
//#endregion
|
|
121
114
|
//#region src/core/git.ts
|
|
122
115
|
/**
|
|
@@ -184,7 +177,6 @@ var GitClient = class {
|
|
|
184
177
|
}
|
|
185
178
|
}
|
|
186
179
|
};
|
|
187
|
-
|
|
188
180
|
//#endregion
|
|
189
181
|
//#region ../../node_modules/.pnpm/defu@6.1.4/node_modules/defu/dist/defu.mjs
|
|
190
182
|
function isPlainObject$1(value) {
|
|
@@ -213,19 +205,18 @@ function createDefu(merger) {
|
|
|
213
205
|
return (...arguments_) => arguments_.reduce((p, c) => _defu(p, c, "", merger), {});
|
|
214
206
|
}
|
|
215
207
|
const defu = createDefu();
|
|
216
|
-
|
|
208
|
+
createDefu((object, key, currentValue) => {
|
|
217
209
|
if (object[key] !== void 0 && typeof currentValue === "function") {
|
|
218
210
|
object[key] = currentValue(object[key]);
|
|
219
211
|
return true;
|
|
220
212
|
}
|
|
221
213
|
});
|
|
222
|
-
|
|
214
|
+
createDefu((object, key, currentValue) => {
|
|
223
215
|
if (Array.isArray(object[key]) && typeof currentValue === "function") {
|
|
224
216
|
object[key] = currentValue(object[key]);
|
|
225
217
|
return true;
|
|
226
218
|
}
|
|
227
219
|
});
|
|
228
|
-
|
|
229
220
|
//#endregion
|
|
230
221
|
//#region src/core/workspace.ts
|
|
231
222
|
/**
|
|
@@ -264,14 +255,12 @@ async function getWorkspaceData(cwd, options) {
|
|
|
264
255
|
packages: await getWorkspacePackages(workspaceDir, options)
|
|
265
256
|
};
|
|
266
257
|
}
|
|
267
|
-
|
|
268
258
|
//#endregion
|
|
269
259
|
//#region src/core/logger.ts
|
|
270
260
|
/**
|
|
271
261
|
* 统一的日志实例,便于在命令行中输出带有前缀和颜色的消息。
|
|
272
262
|
*/
|
|
273
263
|
const logger = createConsola();
|
|
274
|
-
|
|
275
264
|
//#endregion
|
|
276
265
|
//#region src/commands/ai.ts
|
|
277
266
|
const agenticSections = [
|
|
@@ -302,7 +291,7 @@ function createTimestampFolderName(date = /* @__PURE__ */ new Date()) {
|
|
|
302
291
|
async function generateAgenticTemplate(options = {}) {
|
|
303
292
|
const cwd = options.cwd ?? process.cwd();
|
|
304
293
|
const format = options.format ?? "md";
|
|
305
|
-
const baseDir = options.baseDir ??
|
|
294
|
+
const baseDir = options.baseDir ?? "agentic/prompts";
|
|
306
295
|
if (format !== "md" && format !== "json") throw new Error(`不支持的模板格式:${format}`);
|
|
307
296
|
const template = format === "md" ? renderMarkdownTemplate() : renderJsonTemplate();
|
|
308
297
|
const ext = format === "json" ? "json" : "md";
|
|
@@ -342,7 +331,6 @@ async function generateAgenticTemplates(tasks, defaults = {}) {
|
|
|
342
331
|
}
|
|
343
332
|
return results;
|
|
344
333
|
}
|
|
345
|
-
|
|
346
334
|
//#endregion
|
|
347
335
|
//#region ../../node_modules/.pnpm/is-primitive@3.0.1/node_modules/is-primitive/index.js
|
|
348
336
|
/*!
|
|
@@ -357,7 +345,6 @@ var require_is_primitive = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
357
345
|
return typeof val !== "function";
|
|
358
346
|
};
|
|
359
347
|
}));
|
|
360
|
-
|
|
361
348
|
//#endregion
|
|
362
349
|
//#region ../../node_modules/.pnpm/isobject@3.0.1/node_modules/isobject/index.js
|
|
363
350
|
/*!
|
|
@@ -371,7 +358,6 @@ var require_isobject = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
371
358
|
return val != null && typeof val === "object" && Array.isArray(val) === false;
|
|
372
359
|
};
|
|
373
360
|
}));
|
|
374
|
-
|
|
375
361
|
//#endregion
|
|
376
362
|
//#region ../../node_modules/.pnpm/is-plain-object@2.0.4/node_modules/is-plain-object/index.js
|
|
377
363
|
/*!
|
|
@@ -396,7 +382,6 @@ var require_is_plain_object = /* @__PURE__ */ __commonJSMin(((exports, module) =
|
|
|
396
382
|
return true;
|
|
397
383
|
};
|
|
398
384
|
}));
|
|
399
|
-
|
|
400
385
|
//#endregion
|
|
401
386
|
//#region ../../node_modules/.pnpm/set-value@4.1.0/node_modules/set-value/index.js
|
|
402
387
|
/*!
|
|
@@ -510,7 +495,6 @@ var require_set_value = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
510
495
|
};
|
|
511
496
|
module.exports = setValue;
|
|
512
497
|
}));
|
|
513
|
-
|
|
514
498
|
//#endregion
|
|
515
499
|
//#region src/core/config.ts
|
|
516
500
|
/**
|
|
@@ -555,12 +539,10 @@ async function loadMonorepoConfig(cwd) {
|
|
|
555
539
|
async function resolveCommandConfig(name, cwd) {
|
|
556
540
|
return ((await loadMonorepoConfig(cwd)).commands ?? {})[name] ?? {};
|
|
557
541
|
}
|
|
558
|
-
|
|
559
542
|
//#endregion
|
|
560
543
|
//#region package.json
|
|
561
544
|
var name = "@icebreakers/monorepo";
|
|
562
|
-
var version = "3.2.
|
|
563
|
-
|
|
545
|
+
var version = "3.2.14";
|
|
564
546
|
//#endregion
|
|
565
547
|
//#region src/constants.ts
|
|
566
548
|
/**
|
|
@@ -575,7 +557,6 @@ const packageDir = path$1.dirname(packageJsonPath);
|
|
|
575
557
|
* monorepo 根目录,方便需要跳出当前包的逻辑(例如定位工作区文件)。
|
|
576
558
|
*/
|
|
577
559
|
const rootDir = path$1.resolve(packageDir, "..", "..");
|
|
578
|
-
|
|
579
560
|
//#endregion
|
|
580
561
|
//#region src/commands/skills.ts
|
|
581
562
|
const skillName = "icebreakers-monorepo-cli";
|
|
@@ -589,7 +570,7 @@ function getSkillTargetPaths(homeDir = os.homedir()) {
|
|
|
589
570
|
}
|
|
590
571
|
function normalizeTargets(values) {
|
|
591
572
|
if (!values?.length) return;
|
|
592
|
-
return
|
|
573
|
+
return [...new Set(values)];
|
|
593
574
|
}
|
|
594
575
|
async function syncSkills(options = {}) {
|
|
595
576
|
const cwd = options.cwd ?? process.cwd();
|
|
@@ -621,7 +602,6 @@ async function syncSkills(options = {}) {
|
|
|
621
602
|
}
|
|
622
603
|
return results;
|
|
623
604
|
}
|
|
624
|
-
|
|
625
605
|
//#endregion
|
|
626
606
|
//#region src/commands/clean.ts
|
|
627
607
|
var import_set_value = /* @__PURE__ */ __toESM(require_set_value(), 1);
|
|
@@ -666,13 +646,13 @@ async function cleanProjects(cwd, overrides) {
|
|
|
666
646
|
const qoderDir = path.resolve(workspaceDir, ".qoder");
|
|
667
647
|
const docsPlansDir = path.resolve(workspaceDir, "docs/plans");
|
|
668
648
|
const skillTargets = Object.values(getSkillTargetPaths());
|
|
669
|
-
const candidates =
|
|
649
|
+
const candidates = [...new Set([
|
|
670
650
|
...cleanDirs.filter(Boolean),
|
|
671
651
|
readmeZh,
|
|
672
652
|
qoderDir,
|
|
673
653
|
docsPlansDir,
|
|
674
654
|
...skillTargets
|
|
675
|
-
])
|
|
655
|
+
])];
|
|
676
656
|
await Promise.all(candidates.map(async (dir) => {
|
|
677
657
|
if (await fs.pathExists(dir)) await fs.remove(dir);
|
|
678
658
|
}));
|
|
@@ -681,7 +661,6 @@ async function cleanProjects(cwd, overrides) {
|
|
|
681
661
|
(0, import_set_value.default)(pkgJson, "devDependencies.@icebreakers/monorepo", cleanConfig?.pinnedVersion ?? "latest", { preservePaths: false });
|
|
682
662
|
await fs.outputJson(name, pkgJson, { spaces: 2 });
|
|
683
663
|
}
|
|
684
|
-
|
|
685
664
|
//#endregion
|
|
686
665
|
//#region src/commands/create.ts
|
|
687
666
|
/**
|
|
@@ -808,10 +787,10 @@ async function createNewProject(options) {
|
|
|
808
787
|
const renameJson = options?.renameJson ?? createConfig?.renameJson ?? false;
|
|
809
788
|
const rawName = options?.name ?? createConfig?.name;
|
|
810
789
|
const name = typeof rawName === "string" ? rawName.trim() : void 0;
|
|
811
|
-
const requestedTemplate = options?.type ?? createConfig?.type ?? createConfig?.defaultTemplate ??
|
|
790
|
+
const requestedTemplate = options?.type ?? createConfig?.type ?? createConfig?.defaultTemplate ?? "unbuild";
|
|
812
791
|
const templateDefinitions = getTemplateMap(createConfig?.templateMap);
|
|
813
792
|
const templatesRoot = createConfig?.templatesDir ? path.resolve(cwd, createConfig.templatesDir) : templatesDir;
|
|
814
|
-
const fallbackTemplate = createConfig?.defaultTemplate ??
|
|
793
|
+
const fallbackTemplate = createConfig?.defaultTemplate ?? "unbuild";
|
|
815
794
|
const bundlerName = typeof requestedTemplate === "string" && templateDefinitions[requestedTemplate] ? requestedTemplate : fallbackTemplate;
|
|
816
795
|
const templateDefinition = templateDefinitions[bundlerName];
|
|
817
796
|
if (!templateDefinition) throw new Error(`未找到名为 ${bundlerName} 的模板,请检查 monorepo.config.ts`);
|
|
@@ -836,7 +815,6 @@ async function createNewProject(options) {
|
|
|
836
815
|
}
|
|
837
816
|
logger.success(`${pc.bgGreenBright(pc.white(`[${bundlerName}]`))} ${targetName} 项目创建成功!`);
|
|
838
817
|
}
|
|
839
|
-
|
|
840
818
|
//#endregion
|
|
841
819
|
//#region src/core/context.ts
|
|
842
820
|
/**
|
|
@@ -857,7 +835,6 @@ async function createContext(cwd) {
|
|
|
857
835
|
config: await loadMonorepoConfig(workspaceDir)
|
|
858
836
|
};
|
|
859
837
|
}
|
|
860
|
-
|
|
861
838
|
//#endregion
|
|
862
839
|
//#region src/commands/init/setChangeset.ts
|
|
863
840
|
/**
|
|
@@ -876,7 +853,6 @@ async function setChangeset_default(ctx) {
|
|
|
876
853
|
}
|
|
877
854
|
}
|
|
878
855
|
}
|
|
879
|
-
|
|
880
856
|
//#endregion
|
|
881
857
|
//#region src/utils/fs.ts
|
|
882
858
|
/**
|
|
@@ -889,7 +865,6 @@ function isIgnorableFsError(error) {
|
|
|
889
865
|
const code = error.code;
|
|
890
866
|
return code === "ENOENT" || code === "EBUSY" || code === "EEXIST";
|
|
891
867
|
}
|
|
892
|
-
|
|
893
868
|
//#endregion
|
|
894
869
|
//#region src/utils/github.ts
|
|
895
870
|
/**
|
|
@@ -926,7 +901,6 @@ function updateIssueTemplateConfig(source, repoName) {
|
|
|
926
901
|
if (!changed) return source;
|
|
927
902
|
return doc.toString();
|
|
928
903
|
}
|
|
929
|
-
|
|
930
904
|
//#endregion
|
|
931
905
|
//#region src/utils/hash.ts
|
|
932
906
|
/**
|
|
@@ -948,14 +922,15 @@ function isFileChanged(src, dest) {
|
|
|
948
922
|
return false;
|
|
949
923
|
}
|
|
950
924
|
}
|
|
951
|
-
|
|
952
925
|
//#endregion
|
|
953
926
|
//#region src/utils/regexp.ts
|
|
927
|
+
const regexpSpecialCharacterPattern = /[|\\{}()[\]^$+*?.]/g;
|
|
928
|
+
const hyphenPattern = /-/g;
|
|
954
929
|
/**
|
|
955
930
|
* 逃逸正则表达式中所有特殊字符,避免被当做模式解析。
|
|
956
931
|
*/
|
|
957
932
|
function escapeStringRegexp(str) {
|
|
958
|
-
return str.replace(
|
|
933
|
+
return str.replace(regexpSpecialCharacterPattern, "\\$&").replace(hyphenPattern, "\\x2d");
|
|
959
934
|
}
|
|
960
935
|
/**
|
|
961
936
|
* 判断字符串是否命中任意一个正则,用于过滤要同步的资产文件。
|
|
@@ -964,7 +939,6 @@ function isMatch(str, arr) {
|
|
|
964
939
|
for (const reg of arr) if (reg.test(str)) return true;
|
|
965
940
|
return false;
|
|
966
941
|
}
|
|
967
|
-
|
|
968
942
|
//#endregion
|
|
969
943
|
//#region src/commands/init/setIssueTemplateConfig.ts
|
|
970
944
|
/**
|
|
@@ -979,7 +953,6 @@ async function setIssueTemplateConfig_default(ctx) {
|
|
|
979
953
|
const next = updateIssueTemplateConfig(source, repoName);
|
|
980
954
|
if (next !== source) await fs.writeFile(configPath, next, "utf8");
|
|
981
955
|
}
|
|
982
|
-
|
|
983
956
|
//#endregion
|
|
984
957
|
//#region src/commands/init/setPkgJson.ts
|
|
985
958
|
/**
|
|
@@ -1004,7 +977,6 @@ async function setPkgJson_default(ctx) {
|
|
|
1004
977
|
if (await fs.readFile(pkg.pkgJsonPath, "utf8") !== nextContent) await fs.writeFile(pkg.pkgJsonPath, nextContent, "utf8");
|
|
1005
978
|
}));
|
|
1006
979
|
}
|
|
1007
|
-
|
|
1008
980
|
//#endregion
|
|
1009
981
|
//#region src/commands/init/setReadme.ts
|
|
1010
982
|
async function getRows(ctx) {
|
|
@@ -1012,7 +984,7 @@ async function getRows(ctx) {
|
|
|
1012
984
|
const rows = [];
|
|
1013
985
|
if (gitUrl) rows.push(`# ${gitUrl.name}\n`);
|
|
1014
986
|
rows.push("## Packages\n");
|
|
1015
|
-
const sortedPackages =
|
|
987
|
+
const sortedPackages = packages.toSorted((a, b) => {
|
|
1016
988
|
const left = a.manifest.name ?? "";
|
|
1017
989
|
const right = b.manifest.name ?? "";
|
|
1018
990
|
return left.localeCompare(right);
|
|
@@ -1051,7 +1023,6 @@ async function setReadme_default(ctx) {
|
|
|
1051
1023
|
const rows = await getRows(ctx);
|
|
1052
1024
|
await fs.writeFile(path.resolve(ctx.cwd, "README.md"), `${rows.join("\n")}\n`);
|
|
1053
1025
|
}
|
|
1054
|
-
|
|
1055
1026
|
//#endregion
|
|
1056
1027
|
//#region src/commands/init/index.ts
|
|
1057
1028
|
/**
|
|
@@ -1065,7 +1036,6 @@ async function init(cwd) {
|
|
|
1065
1036
|
if (!initConfig.skipReadme) await setReadme_default(ctx);
|
|
1066
1037
|
if (!initConfig.skipIssueTemplateConfig) await setIssueTemplateConfig_default(ctx);
|
|
1067
1038
|
}
|
|
1068
|
-
|
|
1069
1039
|
//#endregion
|
|
1070
1040
|
//#region src/commands/mirror/sources.ts
|
|
1071
1041
|
const chinaMirrorsEnvs = {
|
|
@@ -1096,7 +1066,6 @@ const chinaMirrorsEnvs = {
|
|
|
1096
1066
|
npm_config_sharp_libvips_binary_host: "https://cdn.npmmirror.com/binaries/sharp-libvips",
|
|
1097
1067
|
npm_config_robotjs_binary_host: "https://cdn.npmmirror.com/binaries/robotjs"
|
|
1098
1068
|
};
|
|
1099
|
-
|
|
1100
1069
|
//#endregion
|
|
1101
1070
|
//#region src/commands/mirror/utils.ts
|
|
1102
1071
|
/**
|
|
@@ -1111,7 +1080,6 @@ function setMirror(obj, envs = chinaMirrorsEnvs) {
|
|
|
1111
1080
|
const prefix = "terminal.integrated.env";
|
|
1112
1081
|
if (typeof obj === "object" && obj) for (const platform of platforms) (0, import_set_value.default)(obj, [prefix, platform].join(".").replaceAll(".", "\\."), envs);
|
|
1113
1082
|
}
|
|
1114
|
-
|
|
1115
1083
|
//#endregion
|
|
1116
1084
|
//#region src/commands/mirror/binaryMirror.ts
|
|
1117
1085
|
/**
|
|
@@ -1129,7 +1097,6 @@ async function setVscodeBinaryMirror(cwd) {
|
|
|
1129
1097
|
json && typeof json === "object" && setMirror(json, env);
|
|
1130
1098
|
await fs.writeFile(targetJsonPath, `${stringify(json, void 0, 2)}\n`, "utf8");
|
|
1131
1099
|
}
|
|
1132
|
-
|
|
1133
1100
|
//#endregion
|
|
1134
1101
|
//#region src/commands/sync.ts
|
|
1135
1102
|
function renderCommand(template, pkgName) {
|
|
@@ -1147,9 +1114,9 @@ async function syncNpmMirror(cwd, options) {
|
|
|
1147
1114
|
logger.info(`[当前工作区Repo]:\n${packages.map((x) => `- ${pc.green(x.manifest.name)} : ${path.relative(workspaceDir, x.rootDir)}`).join("\n")}\n`);
|
|
1148
1115
|
const set = new Set(packages.map((x) => x.manifest.name));
|
|
1149
1116
|
if (packageFilter?.length) {
|
|
1150
|
-
for (const name of
|
|
1117
|
+
for (const name of [...set]) if (!name || !packageFilter.includes(name)) set.delete(name);
|
|
1151
1118
|
}
|
|
1152
|
-
logger.info(`[即将同步的包]:\n${Array.from(set
|
|
1119
|
+
logger.info(`[即将同步的包]:\n${Array.from(set, (x) => `- ${pc.green(x ?? "")}`).join("\n")}\n`);
|
|
1153
1120
|
const queue = new PQueue({ concurrency: configConcurrency ?? Math.max(os.cpus().length, 1) });
|
|
1154
1121
|
const template = configCommand ?? "cnpm sync {name}";
|
|
1155
1122
|
const tasks = [];
|
|
@@ -1161,17 +1128,18 @@ async function syncNpmMirror(cwd, options) {
|
|
|
1161
1128
|
}
|
|
1162
1129
|
await Promise.all(tasks);
|
|
1163
1130
|
}
|
|
1164
|
-
|
|
1165
1131
|
//#endregion
|
|
1166
1132
|
//#region src/commands/upgrade/agents.ts
|
|
1133
|
+
const crlfPattern$1 = /\r\n/g;
|
|
1134
|
+
const h2HeadingPrefixPattern = /^##\s+/;
|
|
1167
1135
|
function normalizeEol$1(input) {
|
|
1168
|
-
return input.replace(
|
|
1136
|
+
return input.replace(crlfPattern$1, "\n");
|
|
1169
1137
|
}
|
|
1170
1138
|
function normalizeComparableContent(input) {
|
|
1171
1139
|
return normalizeEol$1(input).trimEnd();
|
|
1172
1140
|
}
|
|
1173
1141
|
function normalizeHeadingKey(line) {
|
|
1174
|
-
return line.replace(
|
|
1142
|
+
return line.replace(h2HeadingPrefixPattern, "").trim().toLowerCase();
|
|
1175
1143
|
}
|
|
1176
1144
|
function trimEdgeEmptyLines(lines) {
|
|
1177
1145
|
const next = [...lines];
|
|
@@ -1193,7 +1161,7 @@ function parseMarkdownByH2(content) {
|
|
|
1193
1161
|
const sections = [];
|
|
1194
1162
|
let current;
|
|
1195
1163
|
for (const line of lines) {
|
|
1196
|
-
if (
|
|
1164
|
+
if (h2HeadingPrefixPattern.test(line)) {
|
|
1197
1165
|
if (current) sections.push(current);
|
|
1198
1166
|
current = {
|
|
1199
1167
|
key: normalizeHeadingKey(line),
|
|
@@ -1259,7 +1227,6 @@ function mergeAgentsMarkdown(source, target) {
|
|
|
1259
1227
|
function isAgentsMarkdownEquivalent(left, right) {
|
|
1260
1228
|
return normalizeComparableContent(left) === normalizeComparableContent(right);
|
|
1261
1229
|
}
|
|
1262
|
-
|
|
1263
1230
|
//#endregion
|
|
1264
1231
|
//#region src/commands/upgrade/overwrite.ts
|
|
1265
1232
|
function asBuffer(data) {
|
|
@@ -1324,21 +1291,13 @@ async function flushPendingOverwrites(pending) {
|
|
|
1324
1291
|
const selectedSet = new Set(selected);
|
|
1325
1292
|
for (const item of pending) if (selectedSet.has(item.targetPath)) await item.action();
|
|
1326
1293
|
}
|
|
1327
|
-
|
|
1328
|
-
//#endregion
|
|
1329
|
-
//#region src/commands/upgrade/scripts.ts
|
|
1330
|
-
/**
|
|
1331
|
-
* 升级时注入到 package.json 的脚本命令集合,保证常用脚本齐全。
|
|
1332
|
-
*/
|
|
1333
|
-
const scripts = {
|
|
1294
|
+
const scriptsEntries = Object.entries({
|
|
1334
1295
|
"script:init": "monorepo init",
|
|
1335
1296
|
"script:sync": "monorepo sync",
|
|
1336
1297
|
"script:clean": "monorepo clean",
|
|
1337
1298
|
"script:mirror": "monorepo mirror",
|
|
1338
1299
|
"commitlint": "commitlint --edit"
|
|
1339
|
-
};
|
|
1340
|
-
const scriptsEntries = Object.entries(scripts);
|
|
1341
|
-
|
|
1300
|
+
});
|
|
1342
1301
|
//#endregion
|
|
1343
1302
|
//#region src/commands/upgrade/pkg-json.ts
|
|
1344
1303
|
const NON_OVERRIDABLE_PREFIXES = ["workspace:", "catalog:"];
|
|
@@ -1402,7 +1361,6 @@ function setPkgJson(sourcePkgJson, targetPkgJson, options) {
|
|
|
1402
1361
|
targetPkgJson.scripts = scripts;
|
|
1403
1362
|
}
|
|
1404
1363
|
}
|
|
1405
|
-
|
|
1406
1364
|
//#endregion
|
|
1407
1365
|
//#region src/commands/upgrade/workspace.ts
|
|
1408
1366
|
function isPlainObject(value) {
|
|
@@ -1458,11 +1416,11 @@ function mergeWorkspaceManifest(source, target) {
|
|
|
1458
1416
|
}
|
|
1459
1417
|
return result;
|
|
1460
1418
|
}
|
|
1461
|
-
|
|
1462
1419
|
//#endregion
|
|
1463
1420
|
//#region src/commands/upgrade/index.ts
|
|
1421
|
+
const crlfPattern = /\r\n/g;
|
|
1464
1422
|
function normalizeEol(input) {
|
|
1465
|
-
return input.replace(
|
|
1423
|
+
return input.replace(crlfPattern, "\n");
|
|
1466
1424
|
}
|
|
1467
1425
|
function normalizeGitignoreLine(line) {
|
|
1468
1426
|
const trimmed = line.trim();
|
|
@@ -1511,7 +1469,7 @@ async function upgradeMonorepo(opts) {
|
|
|
1511
1469
|
const baseTargets = getAssetTargets(useCoreAssets);
|
|
1512
1470
|
const configTargets = upgradeConfig?.targets ?? [];
|
|
1513
1471
|
const mergeTargets = upgradeConfig?.mergeTargets;
|
|
1514
|
-
let targets = configTargets.length ? mergeTargets === false ? [...configTargets] :
|
|
1472
|
+
let targets = configTargets.length ? mergeTargets === false ? [...configTargets] : [...new Set([...baseTargets, ...configTargets])] : baseTargets;
|
|
1515
1473
|
if (merged.interactive) targets = await checkbox({
|
|
1516
1474
|
message: "选择你需要的文件",
|
|
1517
1475
|
choices: targets.map((x) => {
|
|
@@ -1687,6 +1645,5 @@ async function upgradeMonorepo(opts) {
|
|
|
1687
1645
|
}
|
|
1688
1646
|
await flushPendingOverwrites(pendingOverwrites);
|
|
1689
1647
|
}
|
|
1690
|
-
|
|
1691
1648
|
//#endregion
|
|
1692
|
-
export { defineMonorepoConfig as A, getWorkspacePackages as B, syncSkills as C, templatesDir as D, rootDir as E, generateAgenticTemplate as F, generateAgenticTemplates as I, loadAgenticTasks as L, resolveCommandConfig as M, createTimestampFolderName as N, name as O, defaultAgenticBaseDir as P, logger as R, skillTargets as S, packageDir as T, GitClient as V, getCreateChoices as _, escapeStringRegexp as a, cleanProjects as b, isFileChanged as c, toWorkspaceGitignorePath as d, updateIssueTemplateConfig as f, defaultTemplate as g, createNewProject as h, init as i, loadMonorepoConfig as j, version as k, isGitignoreFile as l, createContext as m, syncNpmMirror as n, isMatch as o, isIgnorableFsError as p, setVscodeBinaryMirror as r, getFileHash as s, upgradeMonorepo as t, toPublishGitignorePath as u, getTemplateMap as v, assetsDir as w, getSkillTargetPaths as x, templateMap as y, getWorkspaceData as z };
|
|
1649
|
+
export { defineMonorepoConfig as A, getWorkspacePackages as B, syncSkills as C, templatesDir as D, rootDir as E, generateAgenticTemplate as F, generateAgenticTemplates as I, loadAgenticTasks as L, resolveCommandConfig as M, createTimestampFolderName as N, name as O, defaultAgenticBaseDir as P, logger as R, skillTargets as S, packageDir as T, GitClient as V, getCreateChoices as _, escapeStringRegexp as a, cleanProjects as b, isFileChanged as c, toWorkspaceGitignorePath as d, updateIssueTemplateConfig as f, defaultTemplate as g, createNewProject as h, init as i, loadMonorepoConfig as j, version as k, isGitignoreFile as l, createContext as m, syncNpmMirror as n, isMatch as o, isIgnorableFsError as p, setVscodeBinaryMirror as r, getFileHash as s, upgradeMonorepo as t, toPublishGitignorePath as u, getTemplateMap as v, assetsDir as w, getSkillTargetPaths as x, templateMap as y, getWorkspaceData as z };
|