@icebreakers/monorepo 3.1.18 → 3.2.1
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/README.md +9 -0
- package/dist/cli.cjs +43 -27
- package/dist/cli.mjs +33 -15
- package/dist/index.cjs +25 -6
- package/dist/index.d.cts +56 -37
- package/dist/index.d.mts +56 -37
- package/dist/index.mjs +2 -2
- package/dist/{upgrade-DAoYVyhV.cjs → upgrade-CEd5cMQ-.cjs} +160 -192
- package/dist/{upgrade-BlCigUlp.mjs → upgrade-Zbej0CnL.mjs} +156 -175
- package/package.json +6 -11
- package/resources/skills/icebreakers-monorepo-cli/SKILL.md +43 -0
- package/resources/skills/icebreakers-monorepo-cli/references/commands.md +75 -0
- package/resources/skills/icebreakers-monorepo-cli/references/config.md +63 -0
- package/resources/skills/icebreakers-monorepo-cli/references/templates.md +21 -0
- package/assets/.changeset/config.json +0 -16
- package/assets/.dockerignore +0 -44
- package/assets/.editorconfig +0 -12
- package/assets/.gitattributes +0 -218
- package/assets/.github/FUNDING.yml +0 -4
- package/assets/.github/ISSUE_TEMPLATE/bug_report.yml +0 -71
- package/assets/.github/ISSUE_TEMPLATE/config.yml +0 -17
- package/assets/.github/workflows/ci.yml +0 -62
- package/assets/.github/workflows/release.yml +0 -57
- package/assets/.husky/commit-msg +0 -4
- package/assets/.husky/pre-commit +0 -4
- package/assets/.vscode/extensions.json +0 -6
- package/assets/.vscode/settings.json +0 -172
- package/assets/CODE_OF_CONDUCT.md +0 -128
- package/assets/CONTRIBUTING.md +0 -3
- package/assets/Dockerfile +0 -27
- package/assets/SECURITY.md +0 -21
- package/assets/commitlint.config.ts +0 -3
- package/assets/eslint.config.js +0 -7
- package/assets/gitignore +0 -38
- package/assets/lint-staged.config.js +0 -11
- package/assets/monorepo.config.ts +0 -22
- package/assets/netlify.toml +0 -14
- package/assets/package.json +0 -88
- package/assets/pnpm-workspace.yaml +0 -10
- package/assets/renovate.json +0 -28
- package/assets/stylelint.config.js +0 -3
- package/assets/tsconfig.json +0 -51
- package/assets/turbo.json +0 -74
- package/assets/vitest.config.ts +0 -123
- package/templates/apps/cli/bin/index.js +0 -2
- package/templates/apps/cli/dev/index.ts +0 -2
- package/templates/apps/cli/gitignore +0 -2
- package/templates/apps/cli/package.json +0 -35
- package/templates/apps/cli/src/cli.ts +0 -4
- package/templates/apps/cli/src/index.ts +0 -15
- package/templates/apps/cli/tsconfig.json +0 -7
- package/templates/apps/cli/tsup.config.ts +0 -13
- package/templates/apps/client/eslint.config.js +0 -12
- package/templates/apps/client/gitignore +0 -28
- package/templates/apps/client/index.html +0 -13
- package/templates/apps/client/package.json +0 -52
- package/templates/apps/client/public/vite.svg +0 -1
- package/templates/apps/client/src/App.vue +0 -11
- package/templates/apps/client/src/main.ts +0 -16
- package/templates/apps/client/src/pages/index.vue +0 -357
- package/templates/apps/client/src/query-keys.ts +0 -4
- package/templates/apps/client/src/router/index.ts +0 -13
- package/templates/apps/client/src/stores/i18n.ts +0 -24
- package/templates/apps/client/src/stores/index.ts +0 -15
- package/templates/apps/client/src/style.css +0 -1
- package/templates/apps/client/src/trpc/index.ts +0 -10
- package/templates/apps/client/src/vite-env.d.ts +0 -2
- package/templates/apps/client/tsconfig.app.json +0 -28
- package/templates/apps/client/tsconfig.json +0 -8
- package/templates/apps/client/tsconfig.node.json +0 -25
- package/templates/apps/client/tsconfig.worker.json +0 -11
- package/templates/apps/client/vite.config.ts +0 -57
- package/templates/apps/client/worker/app.ts +0 -24
- package/templates/apps/client/worker/config.ts +0 -1
- package/templates/apps/client/worker/fetch-entry.ts +0 -5
- package/templates/apps/client/worker/node-entry.ts +0 -13
- package/templates/apps/client/worker/trpc-router.ts +0 -24
- package/templates/apps/client/wrangler.jsonc +0 -24
- package/templates/apps/server/gitignore +0 -2
- package/templates/apps/server/package.json +0 -60
- package/templates/apps/server/src/app.ts +0 -191
- package/templates/apps/server/src/config.ts +0 -1
- package/templates/apps/server/src/fetch-entry.ts +0 -5
- package/templates/apps/server/src/node-entry.ts +0 -13
- package/templates/apps/server/test/index.test.ts +0 -14
- package/templates/apps/server/tsconfig.json +0 -24
- package/templates/apps/server/tsup.config.ts +0 -13
- package/templates/apps/server/vitest.config.ts +0 -15
- package/templates/apps/server/wrangler.jsonc +0 -18
- package/templates/apps/website/.vitepress/config.ts +0 -93
- package/templates/apps/website/.vitepress/theme/index.ts +0 -4
- package/templates/apps/website/.vitepress/theme/tailwind.css +0 -1
- package/templates/apps/website/gitignore +0 -1
- package/templates/apps/website/index.md +0 -127
- package/templates/apps/website/monorepo/index.md +0 -46
- package/templates/apps/website/monorepo/manage.md +0 -126
- package/templates/apps/website/monorepo/publish.md +0 -142
- package/templates/apps/website/package.json +0 -39
- package/templates/apps/website/public/logo.jpg +0 -0
- package/templates/apps/website/thinking.md +0 -88
- package/templates/apps/website/tools/changeset.md +0 -87
- package/templates/apps/website/tools/husky.md +0 -108
- package/templates/apps/website/tools/lint-staged.md +0 -79
- package/templates/apps/website/tools/pnpm.md +0 -100
- package/templates/apps/website/tools/renovate.md +0 -91
- package/templates/apps/website/tools/turborepo.md +0 -149
- package/templates/apps/website/why/assets/npm-dt.svg +0 -15
- package/templates/apps/website/why/assets/npm-ts.svg +0 -19
- package/templates/apps/website/why/examples/0.npm-basic-package/index.js +0 -10
- package/templates/apps/website/why/examples/0.npm-basic-package/package.json +0 -11
- package/templates/apps/website/why/examples/1.npm-basic-package/index.cjs +0 -12
- package/templates/apps/website/why/examples/1.npm-basic-package/index.d.ts +0 -1
- package/templates/apps/website/why/examples/1.npm-basic-package/index.js +0 -8
- package/templates/apps/website/why/examples/1.npm-basic-package/package.json +0 -19
- package/templates/apps/website/why/examples/2.npm-basic-package/README.md +0 -1
- package/templates/apps/website/why/examples/2.npm-basic-package/package-lock.json +0 -30
- package/templates/apps/website/why/examples/2.npm-basic-package/package.json +0 -35
- package/templates/apps/website/why/examples/2.npm-basic-package/rename-ext.js +0 -24
- package/templates/apps/website/why/examples/2.npm-basic-package/src/index.ts +0 -8
- package/templates/apps/website/why/examples/2.npm-basic-package/tsconfig.cjs.json +0 -8
- package/templates/apps/website/why/examples/2.npm-basic-package/tsconfig.esm.json +0 -7
- package/templates/apps/website/why/examples/2.npm-basic-package/tsconfig.json +0 -18
- package/templates/apps/website/why/examples/3.npm-basic-package/README.md +0 -1
- package/templates/apps/website/why/examples/3.npm-basic-package/build.config.ts +0 -24
- package/templates/apps/website/why/examples/3.npm-basic-package/package-lock.json +0 -3661
- package/templates/apps/website/why/examples/3.npm-basic-package/package.json +0 -32
- package/templates/apps/website/why/examples/3.npm-basic-package/src/index.ts +0 -8
- package/templates/apps/website/why/examples/3.npm-basic-package/tsconfig.json +0 -16
- package/templates/apps/website/why/examples/3.npm-basic-package/tsup.config.ts +0 -16
- package/templates/apps/website/why/examples/usage-cjs/cjs.cjs +0 -4
- package/templates/apps/website/why/examples/usage-cjs/esm.mjs +0 -4
- package/templates/apps/website/why/examples/usage-cjs/index.js +0 -12
- package/templates/apps/website/why/examples/usage-cjs/package-lock.json +0 -42
- package/templates/apps/website/why/examples/usage-cjs/package.json +0 -20
- package/templates/apps/website/why/examples/usage-esm/cjs.cjs +0 -4
- package/templates/apps/website/why/examples/usage-esm/createRequire.js +0 -7
- package/templates/apps/website/why/examples/usage-esm/esm.mjs +0 -4
- package/templates/apps/website/why/examples/usage-esm/index.js +0 -8
- package/templates/apps/website/why/examples/usage-esm/package-lock.json +0 -42
- package/templates/apps/website/why/examples/usage-esm/package.json +0 -21
- package/templates/apps/website/why/how-to-reuse-js-code.md +0 -250
- package/templates/apps/website/why/index.md +0 -1
- package/templates/apps/website/why/js-cjs-mjs.md +0 -99
- package/templates/apps/website/why/js-keywords.md +0 -132
- package/templates/apps/website/why/modern/bundlers.md +0 -79
- package/templates/apps/website/why/modern/dts.md +0 -93
- package/templates/apps/website/why/modern/esm-vs-cjs.md +0 -84
- package/templates/apps/website/why/modern/index.md +0 -55
- package/templates/apps/website/why/modern/package-entry-points.md +0 -128
- package/templates/apps/website/why/modern/typescript.md +0 -155
- package/templates/apps/website/why/publish-basic-npm-package.md +0 -146
- package/templates/apps/website/why/what-is-npm-package.md +0 -162
- package/templates/packages/tsdown-template/package.json +0 -47
- package/templates/packages/tsdown-template/src/index.ts +0 -5
- package/templates/packages/tsdown-template/test/index.test.ts +0 -11
- package/templates/packages/tsdown-template/tsconfig.json +0 -15
- package/templates/packages/tsdown-template/tsdown.config.ts +0 -9
- package/templates/packages/tsdown-template/vitest.config.ts +0 -15
- package/templates/packages/tsup-template/build.config.ts +0 -24
- package/templates/packages/tsup-template/package.json +0 -48
- package/templates/packages/tsup-template/src/index.ts +0 -12
- package/templates/packages/tsup-template/test/index.test.ts +0 -18
- package/templates/packages/tsup-template/tsconfig.json +0 -15
- package/templates/packages/tsup-template/tsup.config.ts +0 -18
- package/templates/packages/tsup-template/vitest.config.ts +0 -15
- package/templates/packages/unbuild-template/build.config.ts +0 -24
- package/templates/packages/unbuild-template/package.json +0 -48
- package/templates/packages/unbuild-template/src/index.ts +0 -9
- package/templates/packages/unbuild-template/src/utils.ts +0 -3
- package/templates/packages/unbuild-template/test/index.test.ts +0 -18
- package/templates/packages/unbuild-template/tsconfig.json +0 -15
- package/templates/packages/unbuild-template/vitest.config.ts +0 -15
- package/templates/packages/vue-lib-template/eslint.config.js +0 -12
- package/templates/packages/vue-lib-template/gitignore +0 -1
- package/templates/packages/vue-lib-template/index.html +0 -13
- package/templates/packages/vue-lib-template/lib/HelloWorld.vue +0 -21
- package/templates/packages/vue-lib-template/lib/index.ts +0 -3
- package/templates/packages/vue-lib-template/package.json +0 -61
- package/templates/packages/vue-lib-template/src/App.vue +0 -9
- package/templates/packages/vue-lib-template/src/main.ts +0 -8
- package/templates/packages/vue-lib-template/src/pages/index.vue +0 -7
- package/templates/packages/vue-lib-template/src/router/index.ts +0 -11
- package/templates/packages/vue-lib-template/src/style.css +0 -1
- package/templates/packages/vue-lib-template/src/vite-env.d.ts +0 -2
- package/templates/packages/vue-lib-template/test/index.test.ts +0 -13
- package/templates/packages/vue-lib-template/tsconfig.app.json +0 -30
- package/templates/packages/vue-lib-template/tsconfig.json +0 -14
- package/templates/packages/vue-lib-template/tsconfig.node.json +0 -25
- package/templates/packages/vue-lib-template/tsconfig.test.json +0 -40
- package/templates/packages/vue-lib-template/vite.config.ts +0 -54
- package/templates/packages/vue-lib-template/vite.shared.config.ts +0 -13
- package/templates/packages/vue-lib-template/vitest.config.ts +0 -13
- /package/{assets/LICENSE → LICENSE} +0 -0
package/README.md
CHANGED
|
@@ -15,10 +15,19 @@ npx monorepo -h
|
|
|
15
15
|
npx monorepo ai create -o agentic-task.md -f
|
|
16
16
|
# 或使用别名
|
|
17
17
|
npx monorepo ai new --name checkout
|
|
18
|
+
# 同步技能到全局目录
|
|
19
|
+
npx monorepo skills sync
|
|
20
|
+
# 仅同步指定目标
|
|
21
|
+
npx monorepo skills sync --codex
|
|
22
|
+
npx monorepo skills sync --claude
|
|
18
23
|
```
|
|
19
24
|
|
|
20
25
|
`monorepo ai create`(别名 `ai new`)默认会把模板写入 `agentic/prompts/<timestamp>/prompt.md`,每次都会建一个以时间命名的目录,并在命令行提示可修改该目录名称,方便追加截图等素材;也可以通过参数自定义路径。
|
|
21
26
|
|
|
27
|
+
`@icebreakers/monorepo` 在运行时会从 `@icebreakers/monorepo-templates` 读取模板、骨架与升级资产。
|
|
28
|
+
|
|
29
|
+
`monorepo skills sync` 会将包内 `resources/skills/icebreakers-monorepo-cli` 同步到 `~/.codex/skills/icebreakers-monorepo-cli` 或 `~/.claude/skills/icebreakers-monorepo-cli`;未指定目标时会交互选择。
|
|
30
|
+
|
|
22
31
|
`monorepo ai create` 支持批量生成:
|
|
23
32
|
|
|
24
33
|
```bash
|
package/dist/cli.cjs
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
const require_upgrade = require('./upgrade-
|
|
1
|
+
const require_upgrade = require('./upgrade-CEd5cMQ-.cjs');
|
|
2
2
|
let node_process = require("node:process");
|
|
3
3
|
node_process = require_upgrade.__toESM(node_process);
|
|
4
|
-
let
|
|
5
|
-
_inquirer_input = require_upgrade.__toESM(_inquirer_input);
|
|
6
|
-
let _inquirer_select = require("@inquirer/select");
|
|
7
|
-
_inquirer_select = require_upgrade.__toESM(_inquirer_select);
|
|
8
|
-
let commander = require("commander");
|
|
4
|
+
let _icebreakers_monorepo_templates = require("@icebreakers/monorepo-templates");
|
|
9
5
|
|
|
10
6
|
//#region src/cli/program.ts
|
|
11
7
|
const cwd = node_process.default.cwd();
|
|
12
|
-
|
|
8
|
+
_icebreakers_monorepo_templates.program.name(require_upgrade.name).version(require_upgrade.version);
|
|
13
9
|
/**
|
|
14
10
|
* 升级子命令:同步 assets 模板到当前仓库。
|
|
15
11
|
*/
|
|
16
|
-
|
|
12
|
+
_icebreakers_monorepo_templates.program.command("upgrade").description("升级/同步 monorepo 相关包").alias("up").option("-i,--interactive").option("-c,--core", "仅同步核心配置,跳过 GitHub 相关资产").option("--outDir <dir>", "Output directory").option("-s,--skip-overwrite", "skip overwrite").action(async (opts) => {
|
|
17
13
|
await require_upgrade.upgradeMonorepo({
|
|
18
14
|
...opts,
|
|
19
15
|
core: opts.core ?? false,
|
|
@@ -21,15 +17,15 @@ commander.program.command("upgrade").description("升级/同步 monorepo 相关
|
|
|
21
17
|
});
|
|
22
18
|
require_upgrade.logger.success("upgrade @icebreakers/monorepo ok!");
|
|
23
19
|
});
|
|
24
|
-
|
|
20
|
+
_icebreakers_monorepo_templates.program.command("init").description("初始化 package.json 和 README.md").action(async () => {
|
|
25
21
|
await require_upgrade.init(cwd);
|
|
26
22
|
require_upgrade.logger.success("init finished!");
|
|
27
23
|
});
|
|
28
|
-
|
|
24
|
+
_icebreakers_monorepo_templates.program.command("sync").description("向 npmmirror 同步所有子包").action(async () => {
|
|
29
25
|
await require_upgrade.syncNpmMirror(cwd);
|
|
30
26
|
require_upgrade.logger.success("sync npm mirror finished!");
|
|
31
27
|
});
|
|
32
|
-
|
|
28
|
+
_icebreakers_monorepo_templates.program.command("clean").description("清除选中的包").option("-y, --yes", "跳过交互直接清理(等价 autoConfirm)").option("--include-private", "包含 private 包").option("--pinned-version <version>", "覆盖写入的 @icebreakers/monorepo 版本").action(async (opts) => {
|
|
33
29
|
const overrides = {};
|
|
34
30
|
if (opts.yes) overrides.autoConfirm = true;
|
|
35
31
|
if (opts.includePrivate) overrides.includePrivate = true;
|
|
@@ -37,18 +33,36 @@ commander.program.command("clean").description("清除选中的包").option("-y,
|
|
|
37
33
|
await require_upgrade.cleanProjects(cwd, overrides);
|
|
38
34
|
require_upgrade.logger.success("clean projects finished!");
|
|
39
35
|
});
|
|
40
|
-
|
|
36
|
+
_icebreakers_monorepo_templates.program.command("mirror").description("设置 VscodeBinaryMirror").action(async () => {
|
|
41
37
|
await require_upgrade.setVscodeBinaryMirror(cwd);
|
|
42
38
|
require_upgrade.logger.success("set vscode binary mirror finished!");
|
|
43
39
|
});
|
|
44
|
-
|
|
40
|
+
_icebreakers_monorepo_templates.program.command("skills").description("技能工具集").command("sync").description("同步 resources/skills/icebreakers-monorepo-cli 到全局目录").option("--codex", "同步到 ~/.codex/skills").option("--claude", "同步到 ~/.claude/skills").option("--all", "同步全部目标").action(async (opts) => {
|
|
41
|
+
const selected = /* @__PURE__ */ new Set();
|
|
42
|
+
if (opts.all) for (const target of require_upgrade.skillTargets) selected.add(target);
|
|
43
|
+
else {
|
|
44
|
+
if (opts.codex) selected.add("codex");
|
|
45
|
+
if (opts.claude) selected.add("claude");
|
|
46
|
+
}
|
|
47
|
+
const results = await require_upgrade.syncSkills(selected.size ? {
|
|
48
|
+
cwd,
|
|
49
|
+
targets: Array.from(selected)
|
|
50
|
+
} : { cwd });
|
|
51
|
+
if (!results.length) {
|
|
52
|
+
require_upgrade.logger.info("未选择任何目标,已跳过同步。");
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
require_upgrade.logger.info(`[已同步的目标]:\n${results.map((item) => `- ${item.target}: ${item.dest}`).join("\n")}\n`);
|
|
56
|
+
require_upgrade.logger.success("skills sync finished!");
|
|
57
|
+
});
|
|
58
|
+
_icebreakers_monorepo_templates.program.command("ai").description("AI 助手工具集").command("create").alias("new").description("生成 Agentic 任务提示词模板").option("-o, --output <path>", "输出到指定文件").option("-f, --force", "允许覆盖已存在文件").option("--format <md|json>", "模板格式,默认 md").option("-d, --dir <path>", "默认输出目录(默认 agentic/prompts,下级自动创建时间文件夹),配合 --name / --tasks 使用").option("-n, --name <name>", "使用名称快速生成文件,自动添加后缀").option("-t, --tasks <file>", "从 JSON 数组批量生成模板").action(async (opts) => {
|
|
45
59
|
const aiConfig = await require_upgrade.resolveCommandConfig("ai", cwd);
|
|
46
60
|
const format = opts.format ?? aiConfig?.format ?? "md";
|
|
47
61
|
const force = opts.force ?? aiConfig?.force ?? false;
|
|
48
62
|
const output = opts.output ?? aiConfig?.output;
|
|
49
63
|
const baseDir = opts.dir ?? aiConfig?.baseDir ?? require_upgrade.defaultAgenticBaseDir;
|
|
50
64
|
const tasksFile = opts.tasks ?? aiConfig?.tasksFile;
|
|
51
|
-
const
|
|
65
|
+
const templateName = opts.name;
|
|
52
66
|
if (Boolean(tasksFile && !opts.output && !opts.name)) {
|
|
53
67
|
if (!tasksFile) throw new Error("tasks file path is required when using tasks mode");
|
|
54
68
|
await require_upgrade.generateAgenticTemplates(await require_upgrade.loadAgenticTasks(tasksFile, cwd), {
|
|
@@ -60,42 +74,44 @@ commander.program.command("ai").description("AI 助手工具集").command("creat
|
|
|
60
74
|
return;
|
|
61
75
|
}
|
|
62
76
|
let folderName;
|
|
63
|
-
if (!output && !
|
|
77
|
+
if (!output && !templateName) {
|
|
64
78
|
const generated = require_upgrade.createTimestampFolderName();
|
|
65
|
-
folderName = ((await (0,
|
|
79
|
+
folderName = ((await (0, _icebreakers_monorepo_templates.input)({
|
|
66
80
|
message: "提示词将写入哪个文件夹?(可回车确认或自定义)",
|
|
67
81
|
default: generated
|
|
68
82
|
}))?.trim?.() ?? generated) || generated;
|
|
69
83
|
}
|
|
70
|
-
|
|
84
|
+
const templateOptions = {
|
|
71
85
|
cwd,
|
|
72
|
-
output,
|
|
73
86
|
force,
|
|
74
87
|
format,
|
|
75
|
-
baseDir
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
88
|
+
baseDir
|
|
89
|
+
};
|
|
90
|
+
if (output !== void 0) templateOptions.output = output;
|
|
91
|
+
if (templateName !== void 0) templateOptions.name = templateName;
|
|
92
|
+
if (folderName !== void 0) templateOptions.folderName = folderName;
|
|
93
|
+
await require_upgrade.generateAgenticTemplate(templateOptions);
|
|
79
94
|
});
|
|
80
|
-
|
|
95
|
+
_icebreakers_monorepo_templates.program.command("new").description("创建一个新的子包").alias("create").argument("[name]").action(async (inputName) => {
|
|
81
96
|
const createConfig = await require_upgrade.resolveCommandConfig("create", cwd);
|
|
82
|
-
|
|
97
|
+
let packageName = inputName;
|
|
98
|
+
if (!packageName) packageName = await (0, _icebreakers_monorepo_templates.input)({
|
|
83
99
|
message: "请输入包名",
|
|
84
100
|
default: createConfig?.name ?? "my-package"
|
|
85
101
|
});
|
|
86
|
-
const type = await (0,
|
|
102
|
+
const type = await (0, _icebreakers_monorepo_templates.select)({
|
|
87
103
|
message: "请选择模板类型",
|
|
88
104
|
choices: require_upgrade.getCreateChoices(createConfig?.choices),
|
|
89
105
|
default: createConfig?.type ?? createConfig?.defaultTemplate ?? require_upgrade.defaultTemplate
|
|
90
106
|
});
|
|
91
107
|
await require_upgrade.createNewProject({
|
|
92
|
-
name:
|
|
108
|
+
name: packageName,
|
|
93
109
|
cwd,
|
|
94
110
|
type
|
|
95
111
|
});
|
|
96
112
|
require_upgrade.logger.success("create a package");
|
|
97
113
|
});
|
|
98
|
-
var program_default =
|
|
114
|
+
var program_default = _icebreakers_monorepo_templates.program;
|
|
99
115
|
|
|
100
116
|
//#endregion
|
|
101
117
|
//#region src/cli.ts
|
package/dist/cli.mjs
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { C as syncSkills, 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, b as cleanProjects, c as getCreateChoices, i as init, k as version, n as syncNpmMirror, o as createNewProject, r as setVscodeBinaryMirror, s as defaultTemplate, t as upgradeMonorepo } from "./upgrade-Zbej0CnL.mjs";
|
|
2
2
|
import process from "node:process";
|
|
3
|
-
import input from "@
|
|
4
|
-
import select from "@inquirer/select";
|
|
5
|
-
import { program } from "commander";
|
|
3
|
+
import { input, program, select } from "@icebreakers/monorepo-templates";
|
|
6
4
|
|
|
7
5
|
//#region src/cli/program.ts
|
|
8
6
|
const cwd = process.cwd();
|
|
@@ -38,6 +36,24 @@ program.command("mirror").description("设置 VscodeBinaryMirror").action(async
|
|
|
38
36
|
await setVscodeBinaryMirror(cwd);
|
|
39
37
|
logger.success("set vscode binary mirror finished!");
|
|
40
38
|
});
|
|
39
|
+
program.command("skills").description("技能工具集").command("sync").description("同步 resources/skills/icebreakers-monorepo-cli 到全局目录").option("--codex", "同步到 ~/.codex/skills").option("--claude", "同步到 ~/.claude/skills").option("--all", "同步全部目标").action(async (opts) => {
|
|
40
|
+
const selected = /* @__PURE__ */ new Set();
|
|
41
|
+
if (opts.all) for (const target of skillTargets) selected.add(target);
|
|
42
|
+
else {
|
|
43
|
+
if (opts.codex) selected.add("codex");
|
|
44
|
+
if (opts.claude) selected.add("claude");
|
|
45
|
+
}
|
|
46
|
+
const results = await syncSkills(selected.size ? {
|
|
47
|
+
cwd,
|
|
48
|
+
targets: Array.from(selected)
|
|
49
|
+
} : { cwd });
|
|
50
|
+
if (!results.length) {
|
|
51
|
+
logger.info("未选择任何目标,已跳过同步。");
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
logger.info(`[已同步的目标]:\n${results.map((item) => `- ${item.target}: ${item.dest}`).join("\n")}\n`);
|
|
55
|
+
logger.success("skills sync finished!");
|
|
56
|
+
});
|
|
41
57
|
program.command("ai").description("AI 助手工具集").command("create").alias("new").description("生成 Agentic 任务提示词模板").option("-o, --output <path>", "输出到指定文件").option("-f, --force", "允许覆盖已存在文件").option("--format <md|json>", "模板格式,默认 md").option("-d, --dir <path>", "默认输出目录(默认 agentic/prompts,下级自动创建时间文件夹),配合 --name / --tasks 使用").option("-n, --name <name>", "使用名称快速生成文件,自动添加后缀").option("-t, --tasks <file>", "从 JSON 数组批量生成模板").action(async (opts) => {
|
|
42
58
|
const aiConfig = await resolveCommandConfig("ai", cwd);
|
|
43
59
|
const format = opts.format ?? aiConfig?.format ?? "md";
|
|
@@ -45,7 +61,7 @@ program.command("ai").description("AI 助手工具集").command("create").alias(
|
|
|
45
61
|
const output = opts.output ?? aiConfig?.output;
|
|
46
62
|
const baseDir = opts.dir ?? aiConfig?.baseDir ?? defaultAgenticBaseDir;
|
|
47
63
|
const tasksFile = opts.tasks ?? aiConfig?.tasksFile;
|
|
48
|
-
const
|
|
64
|
+
const templateName = opts.name;
|
|
49
65
|
if (Boolean(tasksFile && !opts.output && !opts.name)) {
|
|
50
66
|
if (!tasksFile) throw new Error("tasks file path is required when using tasks mode");
|
|
51
67
|
await generateAgenticTemplates(await loadAgenticTasks(tasksFile, cwd), {
|
|
@@ -57,26 +73,28 @@ program.command("ai").description("AI 助手工具集").command("create").alias(
|
|
|
57
73
|
return;
|
|
58
74
|
}
|
|
59
75
|
let folderName;
|
|
60
|
-
if (!output && !
|
|
76
|
+
if (!output && !templateName) {
|
|
61
77
|
const generated = createTimestampFolderName();
|
|
62
78
|
folderName = ((await input({
|
|
63
79
|
message: "提示词将写入哪个文件夹?(可回车确认或自定义)",
|
|
64
80
|
default: generated
|
|
65
81
|
}))?.trim?.() ?? generated) || generated;
|
|
66
82
|
}
|
|
67
|
-
|
|
83
|
+
const templateOptions = {
|
|
68
84
|
cwd,
|
|
69
|
-
output,
|
|
70
85
|
force,
|
|
71
86
|
format,
|
|
72
|
-
baseDir
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
87
|
+
baseDir
|
|
88
|
+
};
|
|
89
|
+
if (output !== void 0) templateOptions.output = output;
|
|
90
|
+
if (templateName !== void 0) templateOptions.name = templateName;
|
|
91
|
+
if (folderName !== void 0) templateOptions.folderName = folderName;
|
|
92
|
+
await generateAgenticTemplate(templateOptions);
|
|
76
93
|
});
|
|
77
|
-
program.command("new").description("创建一个新的子包").alias("create").argument("[name]").action(async (
|
|
94
|
+
program.command("new").description("创建一个新的子包").alias("create").argument("[name]").action(async (inputName) => {
|
|
78
95
|
const createConfig = await resolveCommandConfig("create", cwd);
|
|
79
|
-
|
|
96
|
+
let packageName = inputName;
|
|
97
|
+
if (!packageName) packageName = await input({
|
|
80
98
|
message: "请输入包名",
|
|
81
99
|
default: createConfig?.name ?? "my-package"
|
|
82
100
|
});
|
|
@@ -86,7 +104,7 @@ program.command("new").description("创建一个新的子包").alias("create").a
|
|
|
86
104
|
default: createConfig?.type ?? createConfig?.defaultTemplate ?? defaultTemplate
|
|
87
105
|
});
|
|
88
106
|
await createNewProject({
|
|
89
|
-
name:
|
|
107
|
+
name: packageName,
|
|
90
108
|
cwd,
|
|
91
109
|
type
|
|
92
110
|
});
|
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
const require_upgrade = require('./upgrade-
|
|
1
|
+
const require_upgrade = require('./upgrade-CEd5cMQ-.cjs');
|
|
2
|
+
let _icebreakers_monorepo_templates = require("@icebreakers/monorepo-templates");
|
|
2
3
|
|
|
3
4
|
exports.GitClient = require_upgrade.GitClient;
|
|
4
|
-
exports.assetsDir =
|
|
5
|
+
exports.assetsDir = _icebreakers_monorepo_templates.assetsDir;
|
|
5
6
|
exports.cleanProjects = require_upgrade.cleanProjects;
|
|
6
7
|
exports.createContext = require_upgrade.createContext;
|
|
7
8
|
exports.createNewProject = require_upgrade.createNewProject;
|
|
@@ -13,12 +14,18 @@ exports.generateAgenticTemplate = require_upgrade.generateAgenticTemplate;
|
|
|
13
14
|
exports.generateAgenticTemplates = require_upgrade.generateAgenticTemplates;
|
|
14
15
|
exports.getCreateChoices = require_upgrade.getCreateChoices;
|
|
15
16
|
exports.getFileHash = require_upgrade.getFileHash;
|
|
17
|
+
exports.getSkillTargetPaths = require_upgrade.getSkillTargetPaths;
|
|
16
18
|
exports.getTemplateMap = require_upgrade.getTemplateMap;
|
|
17
19
|
exports.getWorkspaceData = require_upgrade.getWorkspaceData;
|
|
18
20
|
exports.getWorkspacePackages = require_upgrade.getWorkspacePackages;
|
|
19
21
|
exports.init = require_upgrade.init;
|
|
20
22
|
exports.isFileChanged = require_upgrade.isFileChanged;
|
|
21
|
-
exports
|
|
23
|
+
Object.defineProperty(exports, 'isGitignoreFile', {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () {
|
|
26
|
+
return _icebreakers_monorepo_templates.isGitignoreFile;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
22
29
|
exports.isIgnorableFsError = require_upgrade.isIgnorableFsError;
|
|
23
30
|
exports.isMatch = require_upgrade.isMatch;
|
|
24
31
|
exports.loadAgenticTasks = require_upgrade.loadAgenticTasks;
|
|
@@ -34,11 +41,23 @@ exports.packageDir = require_upgrade.packageDir;
|
|
|
34
41
|
exports.resolveCommandConfig = require_upgrade.resolveCommandConfig;
|
|
35
42
|
exports.rootDir = require_upgrade.rootDir;
|
|
36
43
|
exports.setVscodeBinaryMirror = require_upgrade.setVscodeBinaryMirror;
|
|
44
|
+
exports.skillTargets = require_upgrade.skillTargets;
|
|
37
45
|
exports.syncNpmMirror = require_upgrade.syncNpmMirror;
|
|
46
|
+
exports.syncSkills = require_upgrade.syncSkills;
|
|
38
47
|
exports.templateMap = require_upgrade.templateMap;
|
|
39
|
-
exports.templatesDir =
|
|
40
|
-
exports
|
|
41
|
-
|
|
48
|
+
exports.templatesDir = _icebreakers_monorepo_templates.templatesDir;
|
|
49
|
+
Object.defineProperty(exports, 'toPublishGitignorePath', {
|
|
50
|
+
enumerable: true,
|
|
51
|
+
get: function () {
|
|
52
|
+
return _icebreakers_monorepo_templates.toPublishGitignorePath;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
Object.defineProperty(exports, 'toWorkspaceGitignorePath', {
|
|
56
|
+
enumerable: true,
|
|
57
|
+
get: function () {
|
|
58
|
+
return _icebreakers_monorepo_templates.toWorkspaceGitignorePath;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
42
61
|
exports.updateIssueTemplateConfig = require_upgrade.updateIssueTemplateConfig;
|
|
43
62
|
exports.upgradeMonorepo = require_upgrade.upgradeMonorepo;
|
|
44
63
|
Object.defineProperty(exports, 'version', {
|
package/dist/index.d.cts
CHANGED
|
@@ -4,6 +4,7 @@ import { ConfigValues, SimpleGit, SimpleGitOptions } from "simple-git";
|
|
|
4
4
|
import * as git_url_parse0 from "git-url-parse";
|
|
5
5
|
import gitUrlParse from "git-url-parse";
|
|
6
6
|
import * as _pnpm_types0 from "@pnpm/types";
|
|
7
|
+
import { assetsDir, isGitignoreFile, templatesDir, toPublishGitignorePath, toWorkspaceGitignorePath } from "@icebreakers/monorepo-templates";
|
|
7
8
|
import * as consola0 from "consola";
|
|
8
9
|
import crypto from "node:crypto";
|
|
9
10
|
|
|
@@ -75,19 +76,47 @@ declare function generateAgenticTemplates(tasks: AgenticTemplateTask[], defaults
|
|
|
75
76
|
//#endregion
|
|
76
77
|
//#region src/commands/create.d.ts
|
|
77
78
|
/**
|
|
78
|
-
* 内置模板映射表,
|
|
79
|
+
* 内置模板映射表,source 指向 templates 根目录下的来源目录,target 为生成路径。
|
|
79
80
|
*/
|
|
80
81
|
declare const templateMap: {
|
|
81
|
-
readonly tsup:
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
readonly
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
82
|
+
readonly tsup: {
|
|
83
|
+
readonly source: "tsup";
|
|
84
|
+
readonly target: "packages/tsup";
|
|
85
|
+
};
|
|
86
|
+
readonly tsdown: {
|
|
87
|
+
readonly source: "tsdown";
|
|
88
|
+
readonly target: "packages/tsdown";
|
|
89
|
+
};
|
|
90
|
+
readonly unbuild: {
|
|
91
|
+
readonly source: "unbuild";
|
|
92
|
+
readonly target: "packages/unbuild";
|
|
93
|
+
};
|
|
94
|
+
readonly 'vue-lib': {
|
|
95
|
+
readonly source: "vue-lib";
|
|
96
|
+
readonly target: "packages/vue-lib";
|
|
97
|
+
};
|
|
98
|
+
readonly 'hono-server': {
|
|
99
|
+
readonly source: "server";
|
|
100
|
+
readonly target: "apps/server";
|
|
101
|
+
};
|
|
102
|
+
readonly 'vue-hono': {
|
|
103
|
+
readonly source: "client";
|
|
104
|
+
readonly target: "apps/client";
|
|
105
|
+
};
|
|
106
|
+
readonly vitepress: {
|
|
107
|
+
readonly source: "vitepress";
|
|
108
|
+
readonly target: "apps/website";
|
|
109
|
+
};
|
|
110
|
+
readonly cli: {
|
|
111
|
+
readonly source: "cli";
|
|
112
|
+
readonly target: "apps/cli";
|
|
113
|
+
};
|
|
89
114
|
};
|
|
90
115
|
type CreateNewProjectType = keyof typeof templateMap;
|
|
116
|
+
interface TemplateDefinition {
|
|
117
|
+
source: string;
|
|
118
|
+
target: string;
|
|
119
|
+
}
|
|
91
120
|
interface CreateNewProjectOptions {
|
|
92
121
|
name?: string;
|
|
93
122
|
cwd?: string;
|
|
@@ -125,7 +154,7 @@ declare function getCreateChoices(choices?: CreateChoiceOption[]): CreateChoiceO
|
|
|
125
154
|
/**
|
|
126
155
|
* 合并内置与自定义模板映射,允许扩展新的模板类型。
|
|
127
156
|
*/
|
|
128
|
-
declare function getTemplateMap(extra?: Record<string, string>): Record<string,
|
|
157
|
+
declare function getTemplateMap(extra?: Record<string, string | TemplateDefinition>): Record<string, TemplateDefinition>;
|
|
129
158
|
/**
|
|
130
159
|
* 根据提供的参数或配置生成新工程目录,并可自动改写 package.json。
|
|
131
160
|
*/
|
|
@@ -191,10 +220,10 @@ interface CreateCommandConfig extends Partial<Omit<CreateNewProjectOptions, 'cwd
|
|
|
191
220
|
*/
|
|
192
221
|
templatesDir?: string;
|
|
193
222
|
/**
|
|
194
|
-
* 扩展模板映射表,key 为类型,value
|
|
223
|
+
* 扩展模板映射表,key 为类型,value 为模板来源/目标路径。
|
|
195
224
|
* @default 内置 `templateMap`
|
|
196
225
|
*/
|
|
197
|
-
templateMap?: Record<string, string>;
|
|
226
|
+
templateMap?: Record<string, string | TemplateDefinition>;
|
|
198
227
|
/**
|
|
199
228
|
* 自定义交互提示的选项列表。
|
|
200
229
|
* @default 内置 `baseChoices`
|
|
@@ -360,6 +389,19 @@ interface MonorepoConfig {
|
|
|
360
389
|
};
|
|
361
390
|
}
|
|
362
391
|
//#endregion
|
|
392
|
+
//#region src/commands/skills.d.ts
|
|
393
|
+
declare const skillTargets: readonly ["codex", "claude"];
|
|
394
|
+
type SkillTarget = typeof skillTargets[number];
|
|
395
|
+
interface SyncSkillsOptions {
|
|
396
|
+
cwd?: string;
|
|
397
|
+
targets?: SkillTarget[];
|
|
398
|
+
}
|
|
399
|
+
declare function getSkillTargetPaths(homeDir?: string): Record<SkillTarget, string>;
|
|
400
|
+
declare function syncSkills(options?: SyncSkillsOptions): Promise<{
|
|
401
|
+
target: SkillTarget;
|
|
402
|
+
dest: string;
|
|
403
|
+
}[]>;
|
|
404
|
+
//#endregion
|
|
363
405
|
//#region src/core/git.d.ts
|
|
364
406
|
/**
|
|
365
407
|
* 对 simple-git 的轻量封装,集中处理配置缓存与常用查询。
|
|
@@ -465,17 +507,9 @@ declare let version: string;
|
|
|
465
507
|
//#endregion
|
|
466
508
|
//#region src/constants.d.ts
|
|
467
509
|
/**
|
|
468
|
-
* @icebreakers/monorepo
|
|
510
|
+
* @icebreakers/monorepo 包的根目录。
|
|
469
511
|
*/
|
|
470
512
|
declare const packageDir: string;
|
|
471
|
-
/**
|
|
472
|
-
* CLI 提供的模板目录,`monorepo new` 会从这里复制目标工程骨架。
|
|
473
|
-
*/
|
|
474
|
-
declare const templatesDir: string;
|
|
475
|
-
/**
|
|
476
|
-
* 升级命令需要写入的静态文件集合,位于 assets 目录中。
|
|
477
|
-
*/
|
|
478
|
-
declare const assetsDir: string;
|
|
479
513
|
/**
|
|
480
514
|
* monorepo 根目录,方便需要跳出当前包的逻辑(例如定位工作区文件)。
|
|
481
515
|
*/
|
|
@@ -544,21 +578,6 @@ declare function isIgnorableFsError(error: unknown): error is NodeJS.ErrnoExcept
|
|
|
544
578
|
*/
|
|
545
579
|
declare function updateIssueTemplateConfig(source: string, repoName?: string): string;
|
|
546
580
|
//#endregion
|
|
547
|
-
//#region src/utils/gitignore.d.ts
|
|
548
|
-
/**
|
|
549
|
-
* Map a workspace path (containing `.gitignore`) to its packaged variant.
|
|
550
|
-
*/
|
|
551
|
-
declare function toPublishGitignorePath(input: string): string;
|
|
552
|
-
/**
|
|
553
|
-
* Map a packaged path (containing `gitignore`) back to the workspace form.
|
|
554
|
-
*/
|
|
555
|
-
declare function toWorkspaceGitignorePath(input: string): string;
|
|
556
|
-
/**
|
|
557
|
-
* Convenient helper to check whether a filename (with or without dot prefix)
|
|
558
|
-
* should be treated as a gitignore file.
|
|
559
|
-
*/
|
|
560
|
-
declare function isGitignoreFile(name: string): boolean;
|
|
561
|
-
//#endregion
|
|
562
581
|
//#region src/utils/hash.d.ts
|
|
563
582
|
/**
|
|
564
583
|
* 生成给定二进制内容的 md5 摘要,用于快速比较文件内容。
|
|
@@ -579,4 +598,4 @@ declare function escapeStringRegexp(str: string): string;
|
|
|
579
598
|
*/
|
|
580
599
|
declare function isMatch(str: string, arr: RegExp[]): boolean;
|
|
581
600
|
//#endregion
|
|
582
|
-
export { AgenticTemplateFormat, AgenticTemplateTask, type AiCommandConfig, type CleanCommandConfig, type CliOpts, type ConfigValues, Context, type CreateChoiceOption, type CreateCommandConfig, CreateNewProjectOptions, GenerateAgenticTemplateOptions, type GetWorkspacePackagesOptions, GitClient, type InitCommandConfig, type MirrorCommandConfig, type MonorepoConfig, type PackageJson, type SimpleGit, type SimpleGitOptions, type SyncCommandConfig, type UpgradeCommandConfig, 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, updateIssueTemplateConfig, upgradeMonorepo, version };
|
|
601
|
+
export { AgenticTemplateFormat, AgenticTemplateTask, type AiCommandConfig, type CleanCommandConfig, type CliOpts, type ConfigValues, Context, type CreateChoiceOption, type CreateCommandConfig, CreateNewProjectOptions, GenerateAgenticTemplateOptions, type GetWorkspacePackagesOptions, GitClient, type InitCommandConfig, type MirrorCommandConfig, type MonorepoConfig, type PackageJson, type SimpleGit, type SimpleGitOptions, SkillTarget, type SyncCommandConfig, SyncSkillsOptions, type UpgradeCommandConfig, 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 };
|
package/dist/index.d.mts
CHANGED
|
@@ -3,6 +3,7 @@ import gitUrlParse from "git-url-parse";
|
|
|
3
3
|
import * as simple_git0 from "simple-git";
|
|
4
4
|
import { ConfigValues, SimpleGit, SimpleGitOptions } from "simple-git";
|
|
5
5
|
import * as consola0 from "consola";
|
|
6
|
+
import { assetsDir, isGitignoreFile, templatesDir, toPublishGitignorePath, toWorkspaceGitignorePath } from "@icebreakers/monorepo-templates";
|
|
6
7
|
import crypto from "node:crypto";
|
|
7
8
|
import * as _pnpm_types0 from "@pnpm/types";
|
|
8
9
|
import { PackageJson } from "pkg-types";
|
|
@@ -75,19 +76,47 @@ declare function generateAgenticTemplates(tasks: AgenticTemplateTask[], defaults
|
|
|
75
76
|
//#endregion
|
|
76
77
|
//#region src/commands/create.d.ts
|
|
77
78
|
/**
|
|
78
|
-
* 内置模板映射表,
|
|
79
|
+
* 内置模板映射表,source 指向 templates 根目录下的来源目录,target 为生成路径。
|
|
79
80
|
*/
|
|
80
81
|
declare const templateMap: {
|
|
81
|
-
readonly tsup:
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
readonly
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
82
|
+
readonly tsup: {
|
|
83
|
+
readonly source: "tsup";
|
|
84
|
+
readonly target: "packages/tsup";
|
|
85
|
+
};
|
|
86
|
+
readonly tsdown: {
|
|
87
|
+
readonly source: "tsdown";
|
|
88
|
+
readonly target: "packages/tsdown";
|
|
89
|
+
};
|
|
90
|
+
readonly unbuild: {
|
|
91
|
+
readonly source: "unbuild";
|
|
92
|
+
readonly target: "packages/unbuild";
|
|
93
|
+
};
|
|
94
|
+
readonly 'vue-lib': {
|
|
95
|
+
readonly source: "vue-lib";
|
|
96
|
+
readonly target: "packages/vue-lib";
|
|
97
|
+
};
|
|
98
|
+
readonly 'hono-server': {
|
|
99
|
+
readonly source: "server";
|
|
100
|
+
readonly target: "apps/server";
|
|
101
|
+
};
|
|
102
|
+
readonly 'vue-hono': {
|
|
103
|
+
readonly source: "client";
|
|
104
|
+
readonly target: "apps/client";
|
|
105
|
+
};
|
|
106
|
+
readonly vitepress: {
|
|
107
|
+
readonly source: "vitepress";
|
|
108
|
+
readonly target: "apps/website";
|
|
109
|
+
};
|
|
110
|
+
readonly cli: {
|
|
111
|
+
readonly source: "cli";
|
|
112
|
+
readonly target: "apps/cli";
|
|
113
|
+
};
|
|
89
114
|
};
|
|
90
115
|
type CreateNewProjectType = keyof typeof templateMap;
|
|
116
|
+
interface TemplateDefinition {
|
|
117
|
+
source: string;
|
|
118
|
+
target: string;
|
|
119
|
+
}
|
|
91
120
|
interface CreateNewProjectOptions {
|
|
92
121
|
name?: string;
|
|
93
122
|
cwd?: string;
|
|
@@ -125,7 +154,7 @@ declare function getCreateChoices(choices?: CreateChoiceOption[]): CreateChoiceO
|
|
|
125
154
|
/**
|
|
126
155
|
* 合并内置与自定义模板映射,允许扩展新的模板类型。
|
|
127
156
|
*/
|
|
128
|
-
declare function getTemplateMap(extra?: Record<string, string>): Record<string,
|
|
157
|
+
declare function getTemplateMap(extra?: Record<string, string | TemplateDefinition>): Record<string, TemplateDefinition>;
|
|
129
158
|
/**
|
|
130
159
|
* 根据提供的参数或配置生成新工程目录,并可自动改写 package.json。
|
|
131
160
|
*/
|
|
@@ -191,10 +220,10 @@ interface CreateCommandConfig extends Partial<Omit<CreateNewProjectOptions, 'cwd
|
|
|
191
220
|
*/
|
|
192
221
|
templatesDir?: string;
|
|
193
222
|
/**
|
|
194
|
-
* 扩展模板映射表,key 为类型,value
|
|
223
|
+
* 扩展模板映射表,key 为类型,value 为模板来源/目标路径。
|
|
195
224
|
* @default 内置 `templateMap`
|
|
196
225
|
*/
|
|
197
|
-
templateMap?: Record<string, string>;
|
|
226
|
+
templateMap?: Record<string, string | TemplateDefinition>;
|
|
198
227
|
/**
|
|
199
228
|
* 自定义交互提示的选项列表。
|
|
200
229
|
* @default 内置 `baseChoices`
|
|
@@ -360,6 +389,19 @@ interface MonorepoConfig {
|
|
|
360
389
|
};
|
|
361
390
|
}
|
|
362
391
|
//#endregion
|
|
392
|
+
//#region src/commands/skills.d.ts
|
|
393
|
+
declare const skillTargets: readonly ["codex", "claude"];
|
|
394
|
+
type SkillTarget = typeof skillTargets[number];
|
|
395
|
+
interface SyncSkillsOptions {
|
|
396
|
+
cwd?: string;
|
|
397
|
+
targets?: SkillTarget[];
|
|
398
|
+
}
|
|
399
|
+
declare function getSkillTargetPaths(homeDir?: string): Record<SkillTarget, string>;
|
|
400
|
+
declare function syncSkills(options?: SyncSkillsOptions): Promise<{
|
|
401
|
+
target: SkillTarget;
|
|
402
|
+
dest: string;
|
|
403
|
+
}[]>;
|
|
404
|
+
//#endregion
|
|
363
405
|
//#region src/core/git.d.ts
|
|
364
406
|
/**
|
|
365
407
|
* 对 simple-git 的轻量封装,集中处理配置缓存与常用查询。
|
|
@@ -465,17 +507,9 @@ declare let version: string;
|
|
|
465
507
|
//#endregion
|
|
466
508
|
//#region src/constants.d.ts
|
|
467
509
|
/**
|
|
468
|
-
* @icebreakers/monorepo
|
|
510
|
+
* @icebreakers/monorepo 包的根目录。
|
|
469
511
|
*/
|
|
470
512
|
declare const packageDir: string;
|
|
471
|
-
/**
|
|
472
|
-
* CLI 提供的模板目录,`monorepo new` 会从这里复制目标工程骨架。
|
|
473
|
-
*/
|
|
474
|
-
declare const templatesDir: string;
|
|
475
|
-
/**
|
|
476
|
-
* 升级命令需要写入的静态文件集合,位于 assets 目录中。
|
|
477
|
-
*/
|
|
478
|
-
declare const assetsDir: string;
|
|
479
513
|
/**
|
|
480
514
|
* monorepo 根目录,方便需要跳出当前包的逻辑(例如定位工作区文件)。
|
|
481
515
|
*/
|
|
@@ -544,21 +578,6 @@ declare function isIgnorableFsError(error: unknown): error is NodeJS.ErrnoExcept
|
|
|
544
578
|
*/
|
|
545
579
|
declare function updateIssueTemplateConfig(source: string, repoName?: string): string;
|
|
546
580
|
//#endregion
|
|
547
|
-
//#region src/utils/gitignore.d.ts
|
|
548
|
-
/**
|
|
549
|
-
* Map a workspace path (containing `.gitignore`) to its packaged variant.
|
|
550
|
-
*/
|
|
551
|
-
declare function toPublishGitignorePath(input: string): string;
|
|
552
|
-
/**
|
|
553
|
-
* Map a packaged path (containing `gitignore`) back to the workspace form.
|
|
554
|
-
*/
|
|
555
|
-
declare function toWorkspaceGitignorePath(input: string): string;
|
|
556
|
-
/**
|
|
557
|
-
* Convenient helper to check whether a filename (with or without dot prefix)
|
|
558
|
-
* should be treated as a gitignore file.
|
|
559
|
-
*/
|
|
560
|
-
declare function isGitignoreFile(name: string): boolean;
|
|
561
|
-
//#endregion
|
|
562
581
|
//#region src/utils/hash.d.ts
|
|
563
582
|
/**
|
|
564
583
|
* 生成给定二进制内容的 md5 摘要,用于快速比较文件内容。
|
|
@@ -579,4 +598,4 @@ declare function escapeStringRegexp(str: string): string;
|
|
|
579
598
|
*/
|
|
580
599
|
declare function isMatch(str: string, arr: RegExp[]): boolean;
|
|
581
600
|
//#endregion
|
|
582
|
-
export { type AgenticTemplateFormat, type AgenticTemplateTask, type AiCommandConfig, type CleanCommandConfig, type CliOpts, type ConfigValues, Context, type CreateChoiceOption, type CreateCommandConfig, type CreateNewProjectOptions, type GenerateAgenticTemplateOptions, type GetWorkspacePackagesOptions, GitClient, type InitCommandConfig, type MirrorCommandConfig, type MonorepoConfig, type PackageJson, type SimpleGit, type SimpleGitOptions, type SyncCommandConfig, type UpgradeCommandConfig, 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, updateIssueTemplateConfig, upgradeMonorepo, version };
|
|
601
|
+
export { type AgenticTemplateFormat, type AgenticTemplateTask, type AiCommandConfig, type CleanCommandConfig, type CliOpts, type ConfigValues, Context, type CreateChoiceOption, type CreateCommandConfig, type CreateNewProjectOptions, type GenerateAgenticTemplateOptions, type GetWorkspacePackagesOptions, GitClient, type InitCommandConfig, type MirrorCommandConfig, type MonorepoConfig, type PackageJson, type SimpleGit, type SimpleGitOptions, type SkillTarget, type SyncCommandConfig, type SyncSkillsOptions, type UpgradeCommandConfig, 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 };
|
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { A as
|
|
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 toWorkspaceGitignorePath, a as createContext, b as cleanProjects, c as getCreateChoices, d as escapeStringRegexp, f as isMatch, g as toPublishGitignorePath, h as isGitignoreFile, i as init, j as loadMonorepoConfig, k as version, 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 updateIssueTemplateConfig, w as assetsDir, x as getSkillTargetPaths, y as isIgnorableFsError, z as getWorkspaceData } from "./upgrade-Zbej0CnL.mjs";
|
|
2
2
|
|
|
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, updateIssueTemplateConfig, upgradeMonorepo, version };
|
|
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 };
|