done-coding-git 0.6.11 → 0.6.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/README.md CHANGED
@@ -1,11 +1,339 @@
1
1
  # @done-coding/cli-git
2
2
 
3
+ git 跨平台操作命令行工具 - 提供 git 平台克隆、钩子管理和检查功能
4
+
5
+ [![npm version](https://badge.fury.io/js/@done-coding%2Fcli-git.svg)](https://www.npmjs.com/package/@done-coding/cli-git)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+
8
+ ## 安装
9
+
10
+ ### 独立安装
11
+ ```bash
12
+ npm install @done-coding/cli-git
13
+ # 或
14
+ pnpm add @done-coding/cli-git
3
15
  ```
4
- git跨平台操作命令行工具
16
+
17
+ ### 作为 done-coding CLI 的一部分
18
+ ```bash
19
+ npm install -g @done-coding/cli
20
+ # 然后使用
21
+ DC git [command] # macOS/Linux
22
+ dc git [command] # Windows
5
23
  ```
6
24
 
7
- ## 使用
25
+ ## 快速开始
8
26
 
9
- ``` bash
10
- npm install @done-coding/cli-git
11
- ```
27
+ ```bash
28
+ # 独立使用
29
+ dc-git --help
30
+
31
+ # 作为主 CLI 的子命令
32
+ DC git --help # macOS/Linux
33
+ dc git --help # Windows
34
+ ```
35
+
36
+ ## 功能特性
37
+
38
+ - ✅ **平台克隆**: 支持从 GitHub、GitLab 等平台快速克隆用户仓库
39
+ - 🔧 **配置管理**: 初始化和管理 git 相关配置文件
40
+ - 🪝 **钩子支持**: 提供 git 钩子的回调和管理功能
41
+ - 🔍 **状态检查**: 检查 git 操作和仓库状态
42
+
43
+ ## API 文档
44
+
45
+ ### 基础命令
46
+
47
+ #### `dc-git init`
48
+ 初始化配置文件
49
+
50
+ ```bash
51
+ dc-git init
52
+ # 创建 git 相关的配置文件
53
+ ```
54
+
55
+ #### `dc-git clone <platform> <username>`
56
+ 从指定的 git 平台克隆用户的代码仓库
57
+
58
+ ```bash
59
+ # 从 GitHub 克隆用户仓库
60
+ dc-git clone github username
61
+
62
+ # 从 GitLab 克隆用户仓库
63
+ dc-git clone gitlab username
64
+
65
+ # 从其他平台克隆
66
+ dc-git clone bitbucket username
67
+ ```
68
+
69
+ **参数说明**:
70
+ - `platform`: git 平台名称 (github, gitlab, bitbucket 等)
71
+ - `username`: 用户名
72
+
73
+ #### `dc-git hooks <name> [args...]`
74
+ 执行 git 钩子回调
75
+
76
+ ```bash
77
+ # 执行 pre-commit 钩子
78
+ dc-git hooks pre-commit
79
+
80
+ # 执行 post-commit 钩子
81
+ dc-git hooks post-commit
82
+
83
+ # 带参数执行钩子
84
+ dc-git hooks pre-push origin main
85
+ ```
86
+
87
+ **参数说明**:
88
+ - `name`: 钩子名称
89
+ - `args`: 传递给钩子的参数
90
+
91
+ #### `dc-git check <type>`
92
+ 检查 git 操作和状态,主要为工程化配置提供支持
93
+
94
+ ```bash
95
+ # 检测反向合并(为 dc-config 的 merge-lint 模块提供支持)
96
+ dc-git check reverse-merge
97
+ ```
98
+
99
+ **参数说明**:
100
+ - `type`: 检查类型
101
+ - `reverse-merge`: 检测反向合并,防止高级分支被合并到低级分支
102
+
103
+ **功能说明**:
104
+ 此命令主要为 `@done-coding/cli-config` 包的 `merge-lint` 模块提供 git 合并规范检测功能,确保团队遵循正确的分支合并方向。
105
+
106
+ ## 使用示例
107
+
108
+ ### 基础使用场景
109
+
110
+ ```bash
111
+ # 1. 初始化配置
112
+ dc-git init
113
+
114
+ # 2. 从 Gitee 克隆用户的所有仓库
115
+ dc-git clone gitee username
116
+
117
+ # 3. 检查反向合并(通常由 dc-config 自动调用)
118
+ dc-git check reverse-merge
119
+
120
+ # 4. 执行 git 钩子
121
+ dc-git hooks pre-commit
122
+ ```
123
+
124
+ ### 集成到工程化配置
125
+
126
+ ```bash
127
+ # dc-config 包会自动调用 git 检测功能
128
+ dc-config check
129
+
130
+ # 如果启用了 merge-lint 模块,会自动执行:
131
+ # dc-git check reverse-merge
132
+ ```
133
+
134
+ ### 作为主 CLI 的一部分
135
+
136
+ ```bash
137
+ # Windows 系统
138
+ dc git init
139
+ dc git clone gitee username
140
+ dc git hooks pre-commit
141
+ dc git check reverse-merge
142
+
143
+ # macOS/Linux 系统
144
+ DC git init
145
+ DC git clone gitee username
146
+ DC git hooks pre-commit
147
+ DC git check reverse-merge
148
+ ```
149
+
150
+ ## 配置
151
+
152
+ 在项目根目录创建 `.done-coding-git.config.js`:
153
+
154
+ ```javascript
155
+ export default {
156
+ // 默认平台
157
+ defaultPlatform: 'github',
158
+
159
+ // 克隆配置
160
+ clone: {
161
+ // 默认克隆协议
162
+ protocol: 'https', // 或 'ssh'
163
+ // 目标目录
164
+ targetDir: './repos'
165
+ },
166
+
167
+ // 钩子配置
168
+ hooks: {
169
+ // 启用的钩子
170
+ enabled: ['pre-commit', 'post-commit', 'pre-push'],
171
+ // 钩子脚本路径
172
+ scriptsPath: './.git/hooks'
173
+ },
174
+
175
+ // 检查配置
176
+ check: {
177
+ // 默认检查项
178
+ defaultChecks: ['status', 'branch', 'remote']
179
+ }
180
+ };
181
+ ```
182
+
183
+ ## 编程接口
184
+
185
+ ### 作为模块使用
186
+
187
+ ```javascript
188
+ import { GitHelper } from '@done-coding/cli-git/helpers';
189
+
190
+ const git = new GitHelper();
191
+
192
+ // 克隆仓库
193
+ await git.cloneFromPlatform('github', 'username');
194
+
195
+ // 执行钩子
196
+ await git.executeHook('pre-commit', []);
197
+
198
+ // 检查状态
199
+ const status = await git.checkStatus('status');
200
+ console.log(status);
201
+ ```
202
+
203
+ ### TypeScript 支持
204
+
205
+ ```typescript
206
+ import type { PlatformType, HookType, CheckType } from '@done-coding/cli-git/helpers';
207
+
208
+ const platform: PlatformType = 'github';
209
+ const hook: HookType = 'pre-commit';
210
+ const checkType: CheckType = 'status';
211
+ ```
212
+
213
+ ## 故障排除
214
+
215
+ ### 常见问题
216
+
217
+ **Q: 克隆失败**
218
+ ```bash
219
+ # 检查网络连接
220
+ ping github.com
221
+
222
+ # 检查 git 配置
223
+ git config --list
224
+
225
+ # 使用详细模式查看错误
226
+ dc-git clone github username --verbose
227
+ ```
228
+
229
+ **Q: 钩子执行失败**
230
+ ```bash
231
+ # 检查钩子文件权限
232
+ ls -la .git/hooks/
233
+
234
+ # 手动执行钩子测试
235
+ .git/hooks/pre-commit
236
+
237
+ # 重新初始化钩子
238
+ dc-git init
239
+ ```
240
+
241
+ **Q: 检查命令无响应**
242
+ ```bash
243
+ # 确保在 git 仓库中
244
+ git status
245
+
246
+ # 检查仓库完整性
247
+ git fsck
248
+ ```
249
+
250
+ ### 调试模式
251
+
252
+ ```bash
253
+ # 启用详细输出
254
+ dc-git --verbose check status
255
+
256
+ # 启用调试模式
257
+ DEBUG=done-coding:git dc-git clone github username
258
+ ```
259
+
260
+ ## 性能建议
261
+
262
+ - 对于大量仓库克隆,建议分批进行
263
+ - 使用 SSH 协议可以提高克隆速度
264
+ - 定期清理无用的配置文件
265
+
266
+ ## 贡献指南
267
+
268
+ 我们欢迎贡献!请遵循以下步骤:
269
+
270
+ 1. Fork 本仓库
271
+ 2. 创建功能分支:`git checkout -b feature/amazing-feature`
272
+ 3. 提交更改:`git commit -m "feat: add amazing feature"`
273
+ 4. 推送分支:`git push origin feature/amazing-feature`
274
+ 5. 创建 Pull Request
275
+
276
+ ### 开发环境设置
277
+
278
+ ```bash
279
+ # 克隆仓库
280
+ git clone https://gitee.com/done-coding/done-coding-cli.git
281
+ cd done-coding-cli/packages/git
282
+
283
+ # 安装依赖
284
+ pnpm install
285
+
286
+ # 开发模式
287
+ pnpm dev
288
+
289
+ # 构建
290
+ pnpm build
291
+
292
+ # 本地开发测试
293
+ node es/cli.mjs --help
294
+
295
+ # 注意:本地使用 node + 入口文件,发布后使用 bin 命令名
296
+ # 功能完全一致,只是调用方式不同
297
+ ```
298
+
299
+ ## 许可证
300
+
301
+ MIT © [JustSoSu](https://gitee.com/done-coding)
302
+
303
+ ## 包依赖关系
304
+
305
+ ### 为其他包提供服务
306
+
307
+ `@done-coding/cli-git` 的 `check` 命令专门为 `@done-coding/cli-config` 包提供 git 合并检测功能:
308
+
309
+ - **merge-lint 模块**: `dc-config` 包的 `merge-lint` 配置模块依赖 `dc-git check reverse-merge` 命令
310
+ - **反向合并检测**: 防止将高级分支(如 main/master)合并到低级分支(如 feature/develop)
311
+ - **集成使用**: 当 `dc-config` 检测工程化配置时,会调用 `dc-git check` 来验证 git 合并规范
312
+
313
+ ### 检测功能详解
314
+
315
+ #### `dc-git check reverse-merge`
316
+ 专为工程化配置提供的 git 合并规范检测:
317
+
318
+ ```bash
319
+ # 检测当前分支是否存在反向合并
320
+ dc-git check reverse-merge
321
+
322
+ # 该命令会检测:
323
+ # 1. 通过 git reflog 检测合并操作
324
+ # 2. 通过提交信息检测合并记录
325
+ # 3. 通过提交记录检测历史合并
326
+ # 4. 检测 rebase 操作的合规性
327
+ ```
328
+
329
+ **检测场景**:
330
+ - 防止 `main` 分支被合并到 `feature` 分支
331
+ - 防止 `develop` 分支被合并到个人开发分支
332
+ - 确保分支合并方向符合 Git Flow 规范
333
+
334
+ ## 相关链接
335
+
336
+ - [主 CLI 工具](https://www.npmjs.com/package/@done-coding/cli)
337
+ - [配置工具包](https://www.npmjs.com/package/@done-coding/cli-config) - 使用本包的检测功能
338
+ - [Gitee 仓库](https://gitee.com/done-coding/done-coding-cli)
339
+ - [更新日志](./CHANGELOG.md)
package/es/cli.mjs CHANGED
@@ -1,8 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { c as m } from "./index-f436191c.js";
3
- import "./index-25cf06c1.js";
2
+ import { c as m } from "./index-1c9dde81.js";
3
+ import "./index-d7ef8756.js";
4
4
  import "@done-coding/cli-utils";
5
- import "node:child_process";
6
5
  import "node:fs";
7
6
  import "node:path";
8
7
  import "@done-coding/request-axios";
package/es/helpers.mjs CHANGED
@@ -1,29 +1,28 @@
1
1
  #!/usr/bin/env node
2
- import { g as s, G as n, a, h as m } from "./index-25cf06c1.js";
3
- import { xPrompts as e } from "@done-coding/cli-utils";
4
- import "node:child_process";
2
+ import { g as s, G as n, a as i, h as m } from "./index-d7ef8756.js";
3
+ import { outputConsole as o, xPrompts as r } from "@done-coding/cli-utils";
5
4
  import "node:fs";
6
5
  import "node:path";
7
6
  import "@done-coding/request-axios";
8
7
  import "axios";
9
- const u = async (r) => {
10
- console.log("克隆done-coding系列项目"), console.log("选择平台:");
11
- const { platform: o } = await e(s(n.GITEE));
12
- console.log("选择用户名:");
13
- const { username: t } = await e(
14
- a(
8
+ const l = async (e) => {
9
+ o.info("克隆done-coding系列项目"), o.stage("选择平台:");
10
+ const { platform: t } = await r(s(n.GITEE));
11
+ o.stage("选择用户名:");
12
+ const { username: a } = await r(
13
+ i(
15
14
  {
16
15
  [n.GITHUB]: "done-coding",
17
16
  [n.GITEE]: "justsosu"
18
- }[o]
17
+ }[t]
19
18
  )
20
19
  );
21
- console.log("platform:", o), console.log("username:", t), await m({
22
- platform: o,
23
- username: t,
24
- projectName: r
20
+ o.info("platform:", t), o.info("username:", a), await m({
21
+ platform: t,
22
+ username: a,
23
+ projectName: e
25
24
  });
26
25
  };
27
26
  export {
28
- u as cloneDoneCodingSeries
27
+ l as cloneDoneCodingSeries
29
28
  };
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env node
2
+ import { c as a, i as t } from "./index-d7ef8756.js";
3
+ import { createMainCommand as s, createSubcommand as r } from "@done-coding/cli-utils";
4
+ const {
5
+ cliConfig: { moduleName: o }
6
+ } = t, e = (n = !1) => {
7
+ const c = n ? o : void 0, m = `$0${n ? ` ${o}` : ""} <command> [options]`;
8
+ return { command: c, usage: m };
9
+ }, u = async () => s({
10
+ ...a,
11
+ ...e()
12
+ }), f = () => r({
13
+ ...a,
14
+ ...e(!0),
15
+ // git 子命令不显示描述信息 即不在父命令的描述信息中显示
16
+ describe: !1
17
+ });
18
+ export {
19
+ f as a,
20
+ u as c
21
+ };
@@ -1,13 +1,12 @@
1
1
  #!/usr/bin/env node
2
- import { lookForParentTarget as Y, log as i, decryptAES as Z, encryptAES as W, xPrompts as d, HooksNameEnum as f, addHuskyHooks as ee, initHandlerCommon as te, getConfigFileCommonOptions as I, readConfigFile as R, getCurrentBranchName as se, getCommitByHookName as oe, resolveMergeInfoByGitReflogAction as re, checkCurrentIsRebasing as ne, resolveMergeInfoByCommitMsg as ce, getCurrentBranchLastCommitList as ae, getLastReflogList as ie, createSubcommand as ge, getRootScriptName as me } from "@done-coding/cli-utils";
3
- import { execSync as N } from "node:child_process";
2
+ import { lookForParentTarget as Y, outputConsole as i, decryptAES as Z, encryptAES as W, xPrompts as d, HooksNameEnum as p, addHuskyHooks as ee, initHandlerCommon as te, getConfigFileCommonOptions as I, execSyncHijack as N, readConfigFile as R, getCurrentBranchName as se, getCommitByHookName as oe, resolveMergeInfoByGitReflogAction as re, checkCurrentIsRebasing as ne, resolveMergeInfoByCommitMsg as ce, getCurrentBranchLastCommitList as ae, getLastReflogList as ie, createSubcommand as ge, getRootScriptName as me } from "@done-coding/cli-utils";
4
3
  import _ from "node:fs";
5
4
  import w from "node:path";
6
5
  import { createRequest as L } from "@done-coding/request-axios";
7
- import fe from "axios";
6
+ import pe from "axios";
8
7
  var l = /* @__PURE__ */ ((e) => (e.INIT = "init", e.CLONE = "clone", e.HOOKS = "hooks", e.CHECK = "check", e))(l || {}), h = /* @__PURE__ */ ((e) => (e.DEFAULT = "default", e.CLONE_CONFIG = "cloneConfig", e))(h || {}), E = /* @__PURE__ */ ((e) => (e.GITHUB = "github", e.GITEE = "gitee", e))(E || {}), C = /* @__PURE__ */ ((e) => (e.REVERSE_MERGE = "reverseMerge", e))(C || {}), u = /* @__PURE__ */ ((e) => (e.REFLOG_ACTION = "reflog-action", e.COMMIT_MSG = "commit-msg", e.COMMIT_RECORD = "commit-record", e.PRE_REBASE = "pre-rebase", e))(u || {});
9
- const pe = 3e4, y = Math.random(), U = {
10
- timeout: pe,
8
+ const fe = 3e4, y = Math.random(), U = {
9
+ timeout: fe,
11
10
  getBusinessCode() {
12
11
  return y;
13
12
  },
@@ -18,7 +17,7 @@ const pe = 3e4, y = Math.random(), U = {
18
17
  return e.data;
19
18
  },
20
19
  businessSuccessCodeList: [y],
21
- axios: fe
20
+ axios: pe
22
21
  }, x = L({
23
22
  basePath: " https://gitee.com",
24
23
  ...U
@@ -61,7 +60,7 @@ const pe = 3e4, y = Math.random(), U = {
61
60
  }
62
61
  }), T = {
63
62
  name: "@done-coding/cli-git",
64
- version: "0.6.11",
63
+ version: "0.6.14",
65
64
  description: "git跨平台操作命令行工具",
66
65
  bin: {
67
66
  "dc-git": "es/cli.mjs"
@@ -72,8 +71,8 @@ const pe = 3e4, y = Math.random(), U = {
72
71
  }
73
72
  }, {
74
73
  cliConfig: { namespaceDir: he, moduleName: Re }
75
- } = T, F = `./${he}/${Re}`, S = `${F}.json`, H = (e) => `${F}/.${e}`, D = ({ platform: e, username: t }) => `${e}/${t}`, Me = (e) => {
76
- const { platform: t } = e, s = H(t), r = Y(s, {
74
+ } = T, H = `./${he}/${Re}`, S = `${H}.json`, F = (e) => `${H}/.${e}`, D = ({ platform: e, username: t }) => `${e}/${t}`, Me = (e) => {
75
+ const { platform: t } = e, s = F(t), r = Y(s, {
77
76
  isFindFarthest: !1
78
77
  });
79
78
  if (!r) {
@@ -92,12 +91,12 @@ const pe = 3e4, y = Math.random(), U = {
92
91
  platform: s,
93
92
  accessToken: r
94
93
  }) => {
95
- const o = H(s), n = JSON.stringify({
94
+ const o = F(s), n = JSON.stringify({
96
95
  accessToken: r
97
- }), g = D({ platform: s, username: t }), p = W({ text: n, secretKey: g }), a = w.join(e, o);
96
+ }), g = D({ platform: s, username: t }), f = W({ text: n, secretKey: g }), a = w.join(e, o);
98
97
  _.mkdirSync(w.dirname(a), {
99
98
  recursive: !0
100
- }), _.writeFileSync(a, p, "utf-8"), i.success(`配置信息保存成功 ${a}`);
99
+ }), _.writeFileSync(a, f, "utf-8"), i.success(`配置信息保存成功 ${a}`);
101
100
  }, B = [
102
101
  { title: "GitHub", value: E.GITHUB },
103
102
  { title: "Gitee", value: E.GITEE }
@@ -146,13 +145,13 @@ const pe = 3e4, y = Math.random(), U = {
146
145
  });
147
146
  let g = n == null ? void 0 : n.accessToken;
148
147
  i.stage(`正在获取${o}的${r}仓库列表...`);
149
- const p = {
148
+ const f = {
150
149
  username: o,
151
150
  accessToken: g
152
151
  };
153
152
  switch (s.platform) {
154
153
  case E.GITHUB: {
155
- c = (await (p.accessToken ? de : Ee)(p)).data.map((m) => ({
154
+ c = (await (f.accessToken ? de : Ee)(f)).data.map((m) => ({
156
155
  name: m.name,
157
156
  httpUrl: m.clone_url,
158
157
  sshUrl: m.ssh_url,
@@ -161,7 +160,7 @@ const pe = 3e4, y = Math.random(), U = {
161
160
  break;
162
161
  }
163
162
  case E.GITEE: {
164
- c = (await (p.accessToken ? ue : le)(p)).data.map((m) => ({
163
+ c = (await (f.accessToken ? ue : le)(f)).data.map((m) => ({
165
164
  name: m.name,
166
165
  httpUrl: m.html_url,
167
166
  sshUrl: m.ssh_url,
@@ -188,20 +187,20 @@ const pe = 3e4, y = Math.random(), U = {
188
187
  });
189
188
  return a;
190
189
  }, _e = [
191
- f.PRE_COMMIT,
192
- f.PRE_MERGE_COMMIT,
193
- f.PREPARE_COMMIT_MSG,
194
- f.COMMIT_MSG,
195
- f.PRE_REBASE,
196
- f.POST_COMMIT,
197
- f.POST_MERGE,
198
- f.PRE_PUSH
190
+ p.PRE_COMMIT,
191
+ p.PRE_MERGE_COMMIT,
192
+ p.PREPARE_COMMIT_MSG,
193
+ p.COMMIT_MSG,
194
+ p.PRE_REBASE,
195
+ p.POST_COMMIT,
196
+ p.POST_MERGE,
197
+ p.PRE_PUSH
199
198
  ], Ie = [
200
- f.PRE_MERGE_COMMIT,
201
- f.PREPARE_COMMIT_MSG,
202
- f.POST_MERGE,
203
- f.PRE_PUSH,
204
- f.PRE_REBASE
199
+ p.PRE_MERGE_COMMIT,
200
+ p.PREPARE_COMMIT_MSG,
201
+ p.POST_MERGE,
202
+ p.PRE_PUSH,
203
+ p.PRE_REBASE
205
204
  ], $ = (e) => {
206
205
  const {
207
206
  [l.CHECK]: { [C.REVERSE_MERGE]: t }
@@ -214,7 +213,7 @@ const pe = 3e4, y = Math.random(), U = {
214
213
  (s, [r, { afterHash: o, logCount: c }]) => {
215
214
  let n = c - 1;
216
215
  if (o) {
217
- const g = t.findIndex((p) => p.hash === o);
216
+ const g = t.findIndex((f) => f.hash === o);
218
217
  g !== -1 && (i.info(
219
218
  `${r} 设置 只检测 ${o} 之后的日志 即 下标 [0 - ${g})`
220
219
  ), n = Math.min(n, g - 1));
@@ -370,7 +369,7 @@ const pe = 3e4, y = Math.random(), U = {
370
369
  configMap: c,
371
370
  currentBranch: t
372
371
  })) {
373
- const { fromBranch: g, toBranch: p = t } = o, a = `禁止${g}被合并: ${g} => ${p}
372
+ const { fromBranch: g, toBranch: f = t } = o, a = `禁止${g}被合并: ${g} => ${f}
374
373
 
375
374
  --------- 建议 ---------
376
375
  可以通过
@@ -388,7 +387,7 @@ const pe = 3e4, y = Math.random(), U = {
388
387
  const s = $(e), r = Te(s);
389
388
  if (!r)
390
389
  return;
391
- const o = ae({ count: r }), c = Se(s, o), n = o.map((a) => a.hash), p = ie({
390
+ const o = ae({ count: r }), c = Se(s, o), n = o.map((a) => a.hash), f = ie({
392
391
  /** 考虑reflog存在往复切换 */
393
392
  count: r + 30,
394
393
  filterItem: (a) => n.includes(a.hash)
@@ -398,11 +397,13 @@ const pe = 3e4, y = Math.random(), U = {
398
397
  );
399
398
  o.forEach((a, m) => {
400
399
  var P;
401
- const O = a.mergeInfo || ((P = p[a.hash]) == null ? void 0 : P.mergeInfo);
400
+ const O = a.mergeInfo || ((P = f[a.hash]) == null ? void 0 : P.mergeInfo);
402
401
  O && Object.entries(s).forEach(([k]) => {
403
402
  const b = c[k];
404
403
  if (m > b) {
405
- i.skip(`${k} 只检测${b + 1}条, 超出不再检测`);
404
+ i.skip(
405
+ `${k} 只检测${b + 1}条, 超出不再检测`
406
+ );
406
407
  return;
407
408
  }
408
409
  const z = G({
@@ -428,7 +429,7 @@ const pe = 3e4, y = Math.random(), U = {
428
429
  }
429
430
  });
430
431
  });
431
- }, Fe = ({
432
+ }, He = ({
432
433
  config: e,
433
434
  rebaseInfo: t
434
435
  }) => {
@@ -473,7 +474,7 @@ const pe = 3e4, y = Math.random(), U = {
473
474
  /** 能进入 rebase 说明originBranch有值 或者 当前在某个分支上 */
474
475
  n = r
475
476
  ] = o;
476
- Fe({
477
+ He({
477
478
  config: t,
478
479
  rebaseInfo: {
479
480
  targetBranch: c,
@@ -499,7 +500,7 @@ const pe = 3e4, y = Math.random(), U = {
499
500
  default:
500
501
  throw new Error(`不支持的检测类型${s}`);
501
502
  }
502
- }, He = {
503
+ }, Fe = {
503
504
  command: `${l.CHECK} <type>`,
504
505
  describe: "检查git操作",
505
506
  options: Ne(),
@@ -516,7 +517,7 @@ const pe = 3e4, y = Math.random(), U = {
516
517
  }), J = async (e) => {
517
518
  const { name: t, rootDir: s, args: r } = e;
518
519
  switch (t) {
519
- case f.PRE_MERGE_COMMIT: {
520
+ case p.PRE_MERGE_COMMIT: {
520
521
  const o = await R(e);
521
522
  M({
522
523
  config: o,
@@ -525,7 +526,7 @@ const pe = 3e4, y = Math.random(), U = {
525
526
  });
526
527
  break;
527
528
  }
528
- case f.PREPARE_COMMIT_MSG: {
529
+ case p.PREPARE_COMMIT_MSG: {
529
530
  const o = await R(e);
530
531
  M({
531
532
  config: o,
@@ -535,8 +536,8 @@ const pe = 3e4, y = Math.random(), U = {
535
536
  });
536
537
  break;
537
538
  }
538
- case f.POST_MERGE:
539
- case f.PRE_PUSH: {
539
+ case p.POST_MERGE:
540
+ case p.PRE_PUSH: {
540
541
  const o = await R(e);
541
542
  M({
542
543
  config: o,
@@ -545,7 +546,7 @@ const pe = 3e4, y = Math.random(), U = {
545
546
  });
546
547
  break;
547
548
  }
548
- case f.PRE_REBASE: {
549
+ case p.PRE_REBASE: {
549
550
  const o = await R(e);
550
551
  M({
551
552
  config: o,
@@ -563,7 +564,7 @@ const pe = 3e4, y = Math.random(), U = {
563
564
  options: De(),
564
565
  positionals: ve(),
565
566
  handler: J
566
- }, Ze = async (e, t) => {
567
+ }, Ye = async (e, t) => {
567
568
  switch (e) {
568
569
  case l.INIT:
569
570
  return j(t);
@@ -576,14 +577,14 @@ const pe = 3e4, y = Math.random(), U = {
576
577
  default:
577
578
  throw new Error(`不支持的命令 ${e}`);
578
579
  }
579
- }, { version: je, description: Ve } = T, We = {
580
+ }, { version: je, description: Ve } = T, Ze = {
580
581
  describe: Ve,
581
582
  version: je,
582
583
  subcommands: [
583
584
  be,
584
585
  Be,
585
586
  Ke,
586
- He
587
+ Fe
587
588
  ].map(ge),
588
589
  demandCommandCount: 1,
589
590
  rootScriptName: me({ packageJson: T })
@@ -595,7 +596,7 @@ export {
595
596
  l as S,
596
597
  K as a,
597
598
  Oe as b,
598
- We as c,
599
+ Ze as c,
599
600
  j as d,
600
601
  be as e,
601
602
  Be as f,
@@ -605,7 +606,7 @@ export {
605
606
  J as j,
606
607
  Ke as k,
607
608
  q as l,
608
- He as m,
609
- Ze as n,
609
+ Fe as m,
610
+ Ye as n,
610
611
  u as o
611
612
  };
package/es/index.mjs CHANGED
@@ -1,28 +1,27 @@
1
1
  #!/usr/bin/env node
2
- import { o as t, C as l, G as d, I as c, S as C, m as p, l as f, f as h, h as u, c as k, b as I, n as E, k as b, j as H, e as g, d as y } from "./index-25cf06c1.js";
3
- import { a as T } from "./index-f436191c.js";
2
+ import { o as i, C as l, G as t, I as d, S as c, m as C, l as p, f, h, c as u, b as k, n as I, k as E, j as b, e as H, d as g } from "./index-d7ef8756.js";
3
+ import { a as S } from "./index-1c9dde81.js";
4
4
  import "@done-coding/cli-utils";
5
- import "node:child_process";
6
5
  import "node:fs";
7
6
  import "node:path";
8
7
  import "@done-coding/request-axios";
9
8
  import "axios";
10
9
  export {
11
- t as CheckReverseMergeWayEnum,
10
+ i as CheckReverseMergeWayEnum,
12
11
  l as CheckTypeEnum,
13
- d as GitPlatformEnum,
14
- c as InitTypeEnum,
15
- C as SubcommandEnum,
16
- p as checkCommandCliInfo,
17
- f as checkHandler,
18
- h as cloneCommandCliInfo,
19
- u as cloneHandler,
20
- k as commandCliInfo,
21
- T as crateAsSubcommand,
22
- I as getTargetRepoUrl,
23
- E as handler,
24
- b as hooksCommandCliInfo,
25
- H as hooksHandler,
26
- g as initCommandCliInfo,
27
- y as initHandler
12
+ t as GitPlatformEnum,
13
+ d as InitTypeEnum,
14
+ c as SubcommandEnum,
15
+ C as checkCommandCliInfo,
16
+ p as checkHandler,
17
+ f as cloneCommandCliInfo,
18
+ h as cloneHandler,
19
+ u as commandCliInfo,
20
+ S as crateAsSubcommand,
21
+ k as getTargetRepoUrl,
22
+ I as handler,
23
+ E as hooksCommandCliInfo,
24
+ b as hooksHandler,
25
+ H as initCommandCliInfo,
26
+ g as initHandler
28
27
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "done-coding-git",
3
- "version": "0.6.11",
3
+ "version": "0.6.14",
4
4
  "description": "git跨平台操作命令行工具",
5
5
  "private": false,
6
6
  "module": "es/index.mjs",
@@ -42,22 +42,21 @@
42
42
  "license": "MIT",
43
43
  "sideEffects": false,
44
44
  "devDependencies": {
45
- "@done-coding/cli-inject": "0.5.19",
45
+ "@done-coding/cli-inject": "0.5.22",
46
46
  "@types/node": "^18.0.0",
47
47
  "@types/yargs": "^17.0.28",
48
- "rimraf": "^6.0.1",
49
- "typescript": "^5.2.2",
48
+ "typescript": "^5.8.3",
50
49
  "vite": "^4.4.11",
51
50
  "vite-plugin-dts": "^3.6.0"
52
51
  },
53
- "engines": {
54
- "node": ">=18.0.0"
55
- },
56
52
  "dependencies": {
57
- "@done-coding/cli-utils": "0.8.0",
53
+ "@done-coding/cli-utils": "0.8.3",
58
54
  "@done-coding/request-axios": "^1.2.2",
59
55
  "axios": "^1.8.4"
60
56
  },
61
- "gitHead": "e68f726aa899f75c4d294b11620f343c953a74c3",
57
+ "engines": {
58
+ "node": ">=18.0.0"
59
+ },
60
+ "gitHead": "4893b466954ef5925151d8dfc8fc8aa558ce654c",
62
61
  "scripts": {}
63
62
  }
@@ -1,19 +0,0 @@
1
- #!/usr/bin/env node
2
- import { c as a, i as t } from "./index-25cf06c1.js";
3
- import { createMainCommand as r, createSubcommand as s } from "@done-coding/cli-utils";
4
- const {
5
- cliConfig: { moduleName: o }
6
- } = t, c = (n = !1) => {
7
- const e = n ? o : void 0, m = `$0${n ? ` ${o}` : ""} <command> [options]`;
8
- return { command: e, usage: m };
9
- }, u = async () => r({
10
- ...a,
11
- ...c()
12
- }), f = () => s({
13
- ...a,
14
- ...c(!0)
15
- });
16
- export {
17
- f as a,
18
- u as c
19
- };