grf-cli 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +503 -0
- package/README.zh-CN.md +503 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +74 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/add.d.ts +7 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +92 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/clean.d.ts +7 -0
- package/dist/commands/clean.d.ts.map +1 -0
- package/dist/commands/clean.js +171 -0
- package/dist/commands/clean.js.map +1 -0
- package/dist/commands/config.d.ts +7 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +170 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/list.d.ts +7 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +149 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/load.d.ts +8 -0
- package/dist/commands/load.d.ts.map +1 -0
- package/dist/commands/load.js +239 -0
- package/dist/commands/load.js.map +1 -0
- package/dist/commands/unload.d.ts +7 -0
- package/dist/commands/unload.d.ts.map +1 -0
- package/dist/commands/unload.js +738 -0
- package/dist/commands/unload.js.map +1 -0
- package/dist/commands/update.d.ts +7 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +471 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/use.d.ts +8 -0
- package/dist/commands/use.d.ts.map +1 -0
- package/dist/commands/use.js +224 -0
- package/dist/commands/use.js.map +1 -0
- package/dist/core/config.d.ts +55 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +179 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/filesystem.d.ts +74 -0
- package/dist/core/filesystem.d.ts.map +1 -0
- package/dist/core/filesystem.js +300 -0
- package/dist/core/filesystem.js.map +1 -0
- package/dist/core/git.d.ts +75 -0
- package/dist/core/git.d.ts.map +1 -0
- package/dist/core/git.js +169 -0
- package/dist/core/git.js.map +1 -0
- package/dist/core/loading.d.ts +85 -0
- package/dist/core/loading.d.ts.map +1 -0
- package/dist/core/loading.js +224 -0
- package/dist/core/loading.js.map +1 -0
- package/dist/core/repository.d.ts +120 -0
- package/dist/core/repository.d.ts.map +1 -0
- package/dist/core/repository.js +374 -0
- package/dist/core/repository.js.map +1 -0
- package/dist/core/sync.d.ts +72 -0
- package/dist/core/sync.d.ts.map +1 -0
- package/dist/core/sync.js +226 -0
- package/dist/core/sync.js.map +1 -0
- package/dist/types/index.d.ts +135 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +63 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/core/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* grf 类型定义文件
|
|
3
|
+
* 定义全局配置、仓库条目、仓库元信息等核心类型
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 仓库条目接口
|
|
7
|
+
* 存储在全局配置中的仓库基本信息
|
|
8
|
+
*/
|
|
9
|
+
export interface RepoEntry {
|
|
10
|
+
/** 仓库 URL */
|
|
11
|
+
url: string;
|
|
12
|
+
/** 本地存储路径 */
|
|
13
|
+
path: string;
|
|
14
|
+
/** 添加时间 (ISO 8601 格式) */
|
|
15
|
+
addedAt: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 全局配置接口
|
|
19
|
+
* 存储在 ~/.gitreference/config.json 中
|
|
20
|
+
*/
|
|
21
|
+
export interface GlobalConfig {
|
|
22
|
+
/** 配置文件版本 */
|
|
23
|
+
version: string;
|
|
24
|
+
/** 默认分支名称 */
|
|
25
|
+
defaultBranch?: string;
|
|
26
|
+
/** 是否使用浅克隆 */
|
|
27
|
+
shallowClone?: boolean;
|
|
28
|
+
/** 浅克隆深度 */
|
|
29
|
+
shallowDepth?: number;
|
|
30
|
+
/** 仓库映射表,key 为仓库别名 */
|
|
31
|
+
repos: Record<string, RepoEntry>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 仓库元信息接口
|
|
35
|
+
* 存储在每个仓库目录下的 .gitreference-meta.json 中
|
|
36
|
+
*/
|
|
37
|
+
export interface RepoMeta {
|
|
38
|
+
/** 仓库 URL */
|
|
39
|
+
url: string;
|
|
40
|
+
/** 仓库名称/别名 */
|
|
41
|
+
name: string;
|
|
42
|
+
/** 添加时间 (ISO 8601 格式) */
|
|
43
|
+
addedAt: string;
|
|
44
|
+
/** 最后更新时间 (ISO 8601 格式) */
|
|
45
|
+
updatedAt: string;
|
|
46
|
+
/** 当前 commit ID */
|
|
47
|
+
commitId: string;
|
|
48
|
+
/** 分支名称 */
|
|
49
|
+
branch?: string;
|
|
50
|
+
/** 标签名称 */
|
|
51
|
+
tag?: string;
|
|
52
|
+
/** Git 引用 */
|
|
53
|
+
ref?: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* 错误码枚举
|
|
57
|
+
* 按类别分组:1xx 配置、2xx 仓库、3xx Git、4xx 文件系统、5xx 用户输入
|
|
58
|
+
*/
|
|
59
|
+
export declare enum ErrorCode {
|
|
60
|
+
/** 配置文件未找到 */
|
|
61
|
+
CONFIG_NOT_FOUND = 100,
|
|
62
|
+
/** 配置文件解析错误 */
|
|
63
|
+
CONFIG_PARSE_ERROR = 101,
|
|
64
|
+
/** 配置文件写入错误 */
|
|
65
|
+
CONFIG_WRITE_ERROR = 102,
|
|
66
|
+
/** 仓库未找到 */
|
|
67
|
+
REPO_NOT_FOUND = 200,
|
|
68
|
+
/** 仓库已存在 */
|
|
69
|
+
REPO_ALREADY_EXISTS = 201,
|
|
70
|
+
/** 无效的仓库 URL */
|
|
71
|
+
REPO_INVALID_URL = 202,
|
|
72
|
+
/** Git 克隆失败 */
|
|
73
|
+
GIT_CLONE_FAILED = 300,
|
|
74
|
+
/** Git 拉取失败 */
|
|
75
|
+
GIT_PULL_FAILED = 301,
|
|
76
|
+
/** Git 未安装 */
|
|
77
|
+
GIT_NOT_INSTALLED = 302,
|
|
78
|
+
/** Git 切换分支失败 */
|
|
79
|
+
GIT_CHECKOUT_FAILED = 303,
|
|
80
|
+
/** 权限被拒绝 */
|
|
81
|
+
FS_PERMISSION_DENIED = 400,
|
|
82
|
+
/** 路径未找到 */
|
|
83
|
+
FS_PATH_NOT_FOUND = 401,
|
|
84
|
+
/** 复制失败 */
|
|
85
|
+
FS_COPY_FAILED = 402,
|
|
86
|
+
/** 无效参数 */
|
|
87
|
+
INVALID_ARGUMENT = 500,
|
|
88
|
+
/** 缺少参数 */
|
|
89
|
+
MISSING_ARGUMENT = 501
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* 自定义错误类
|
|
93
|
+
* 包含错误码、错误消息和可选的原因错误
|
|
94
|
+
*/
|
|
95
|
+
export declare class GrfError extends Error {
|
|
96
|
+
/** 错误码 */
|
|
97
|
+
code: ErrorCode;
|
|
98
|
+
/** 原因错误 */
|
|
99
|
+
cause?: Error;
|
|
100
|
+
constructor(code: ErrorCode, message: string, cause?: Error);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* 加载条目接口
|
|
104
|
+
* 记录单次 use 操作的详细信息
|
|
105
|
+
*/
|
|
106
|
+
export interface LoadingEntry {
|
|
107
|
+
/** 唯一标识符 (UUID) */
|
|
108
|
+
id: string;
|
|
109
|
+
/** 源仓库名称 (如 github.com/facebook/react) */
|
|
110
|
+
repoName: string;
|
|
111
|
+
/** 源仓库 URL */
|
|
112
|
+
repoUrl: string;
|
|
113
|
+
/** 加载时的 commit ID */
|
|
114
|
+
commitId: string;
|
|
115
|
+
/** 加载时的分支名 */
|
|
116
|
+
branch?: string;
|
|
117
|
+
/** 使用的子目录 (--subdir 选项) */
|
|
118
|
+
subdir?: string;
|
|
119
|
+
/** 目标路径 (相对于项目根目录) */
|
|
120
|
+
targetPath: string;
|
|
121
|
+
/** 加载时间 (ISO 8601 格式) */
|
|
122
|
+
loadedAt: string;
|
|
123
|
+
/** 最后更新时间 */
|
|
124
|
+
updatedAt?: string;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* 加载配置文件接口
|
|
128
|
+
*/
|
|
129
|
+
export interface LoadingConfig {
|
|
130
|
+
/** 配置版本 */
|
|
131
|
+
version: string;
|
|
132
|
+
/** 加载条目列表 */
|
|
133
|
+
entries: LoadingEntry[];
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,aAAa;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa;IACb,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,aAAa;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,aAAa;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc;IACd,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,oBAAY,SAAS;IAEnB,cAAc;IACd,gBAAgB,MAAM;IACtB,eAAe;IACf,kBAAkB,MAAM;IACxB,eAAe;IACf,kBAAkB,MAAM;IAGxB,YAAY;IACZ,cAAc,MAAM;IACpB,YAAY;IACZ,mBAAmB,MAAM;IACzB,gBAAgB;IAChB,gBAAgB,MAAM;IAGtB,eAAe;IACf,gBAAgB,MAAM;IACtB,eAAe;IACf,eAAe,MAAM;IACrB,cAAc;IACd,iBAAiB,MAAM;IACvB,iBAAiB;IACjB,mBAAmB,MAAM;IAGzB,YAAY;IACZ,oBAAoB,MAAM;IAC1B,YAAY;IACZ,iBAAiB,MAAM;IACvB,WAAW;IACX,cAAc,MAAM;IAGpB,WAAW;IACX,gBAAgB,MAAM;IACtB,WAAW;IACX,gBAAgB,MAAM;CACvB;AAED;;;GAGG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,UAAU;IACH,IAAI,EAAE,SAAS,CAAC;IACvB,WAAW;IACJ,KAAK,CAAC,EAAE,KAAK,CAAC;gBAET,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAM5D;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,mBAAmB;IACnB,EAAE,EAAE,MAAM,CAAC;IAEX,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IAEjB,cAAc;IACd,OAAO,EAAE,MAAM,CAAC;IAEhB,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC;IAEjB,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IAEnB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IAEjB,aAAa;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAEhB,aAAa;IACb,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* grf 类型定义文件
|
|
4
|
+
* 定义全局配置、仓库条目、仓库元信息等核心类型
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.GrfError = exports.ErrorCode = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* 错误码枚举
|
|
10
|
+
* 按类别分组:1xx 配置、2xx 仓库、3xx Git、4xx 文件系统、5xx 用户输入
|
|
11
|
+
*/
|
|
12
|
+
var ErrorCode;
|
|
13
|
+
(function (ErrorCode) {
|
|
14
|
+
// 1xx: 配置相关错误
|
|
15
|
+
/** 配置文件未找到 */
|
|
16
|
+
ErrorCode[ErrorCode["CONFIG_NOT_FOUND"] = 100] = "CONFIG_NOT_FOUND";
|
|
17
|
+
/** 配置文件解析错误 */
|
|
18
|
+
ErrorCode[ErrorCode["CONFIG_PARSE_ERROR"] = 101] = "CONFIG_PARSE_ERROR";
|
|
19
|
+
/** 配置文件写入错误 */
|
|
20
|
+
ErrorCode[ErrorCode["CONFIG_WRITE_ERROR"] = 102] = "CONFIG_WRITE_ERROR";
|
|
21
|
+
// 2xx: 仓库相关错误
|
|
22
|
+
/** 仓库未找到 */
|
|
23
|
+
ErrorCode[ErrorCode["REPO_NOT_FOUND"] = 200] = "REPO_NOT_FOUND";
|
|
24
|
+
/** 仓库已存在 */
|
|
25
|
+
ErrorCode[ErrorCode["REPO_ALREADY_EXISTS"] = 201] = "REPO_ALREADY_EXISTS";
|
|
26
|
+
/** 无效的仓库 URL */
|
|
27
|
+
ErrorCode[ErrorCode["REPO_INVALID_URL"] = 202] = "REPO_INVALID_URL";
|
|
28
|
+
// 3xx: Git 相关错误
|
|
29
|
+
/** Git 克隆失败 */
|
|
30
|
+
ErrorCode[ErrorCode["GIT_CLONE_FAILED"] = 300] = "GIT_CLONE_FAILED";
|
|
31
|
+
/** Git 拉取失败 */
|
|
32
|
+
ErrorCode[ErrorCode["GIT_PULL_FAILED"] = 301] = "GIT_PULL_FAILED";
|
|
33
|
+
/** Git 未安装 */
|
|
34
|
+
ErrorCode[ErrorCode["GIT_NOT_INSTALLED"] = 302] = "GIT_NOT_INSTALLED";
|
|
35
|
+
/** Git 切换分支失败 */
|
|
36
|
+
ErrorCode[ErrorCode["GIT_CHECKOUT_FAILED"] = 303] = "GIT_CHECKOUT_FAILED";
|
|
37
|
+
// 4xx: 文件系统相关错误
|
|
38
|
+
/** 权限被拒绝 */
|
|
39
|
+
ErrorCode[ErrorCode["FS_PERMISSION_DENIED"] = 400] = "FS_PERMISSION_DENIED";
|
|
40
|
+
/** 路径未找到 */
|
|
41
|
+
ErrorCode[ErrorCode["FS_PATH_NOT_FOUND"] = 401] = "FS_PATH_NOT_FOUND";
|
|
42
|
+
/** 复制失败 */
|
|
43
|
+
ErrorCode[ErrorCode["FS_COPY_FAILED"] = 402] = "FS_COPY_FAILED";
|
|
44
|
+
// 5xx: 用户输入相关错误
|
|
45
|
+
/** 无效参数 */
|
|
46
|
+
ErrorCode[ErrorCode["INVALID_ARGUMENT"] = 500] = "INVALID_ARGUMENT";
|
|
47
|
+
/** 缺少参数 */
|
|
48
|
+
ErrorCode[ErrorCode["MISSING_ARGUMENT"] = 501] = "MISSING_ARGUMENT";
|
|
49
|
+
})(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
|
|
50
|
+
/**
|
|
51
|
+
* 自定义错误类
|
|
52
|
+
* 包含错误码、错误消息和可选的原因错误
|
|
53
|
+
*/
|
|
54
|
+
class GrfError extends Error {
|
|
55
|
+
constructor(code, message, cause) {
|
|
56
|
+
super(message);
|
|
57
|
+
this.name = "GrfError";
|
|
58
|
+
this.code = code;
|
|
59
|
+
this.cause = cause;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.GrfError = GrfError;
|
|
63
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAuDH;;;GAGG;AACH,IAAY,SAwCX;AAxCD,WAAY,SAAS;IACnB,cAAc;IACd,cAAc;IACd,mEAAsB,CAAA;IACtB,eAAe;IACf,uEAAwB,CAAA;IACxB,eAAe;IACf,uEAAwB,CAAA;IAExB,cAAc;IACd,YAAY;IACZ,+DAAoB,CAAA;IACpB,YAAY;IACZ,yEAAyB,CAAA;IACzB,gBAAgB;IAChB,mEAAsB,CAAA;IAEtB,gBAAgB;IAChB,eAAe;IACf,mEAAsB,CAAA;IACtB,eAAe;IACf,iEAAqB,CAAA;IACrB,cAAc;IACd,qEAAuB,CAAA;IACvB,iBAAiB;IACjB,yEAAyB,CAAA;IAEzB,gBAAgB;IAChB,YAAY;IACZ,2EAA0B,CAAA;IAC1B,YAAY;IACZ,qEAAuB,CAAA;IACvB,WAAW;IACX,+DAAoB,CAAA;IAEpB,gBAAgB;IAChB,WAAW;IACX,mEAAsB,CAAA;IACtB,WAAW;IACX,mEAAsB,CAAA;AACxB,CAAC,EAxCW,SAAS,yBAAT,SAAS,QAwCpB;AAED;;;GAGG;AACH,MAAa,QAAS,SAAQ,KAAK;IAMjC,YAAY,IAAe,EAAE,OAAe,EAAE,KAAa;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAZD,4BAYC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "grf-cli",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "A CLI tool for managing Git reference repositories - easily add, load, and sync reference code from any Git repository",
|
|
5
|
+
"main": "dist/cli.js",
|
|
6
|
+
"types": "dist/types/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"grf": "./dist/cli.js",
|
|
9
|
+
"git-rf": "./dist/cli.js",
|
|
10
|
+
"gitref": "./dist/cli.js"
|
|
11
|
+
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "tsc",
|
|
14
|
+
"dev": "tsc --watch",
|
|
15
|
+
"prepublishOnly": "npm run build",
|
|
16
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [
|
|
19
|
+
"git",
|
|
20
|
+
"reference",
|
|
21
|
+
"repository",
|
|
22
|
+
"cli",
|
|
23
|
+
"code-reference",
|
|
24
|
+
"git-tools",
|
|
25
|
+
"developer-tools"
|
|
26
|
+
],
|
|
27
|
+
"author": "haiyewei",
|
|
28
|
+
"license": "MIT",
|
|
29
|
+
"repository": {
|
|
30
|
+
"type": "git",
|
|
31
|
+
"url": "git+https://github.com/haiyewei/gitreference.git"
|
|
32
|
+
},
|
|
33
|
+
"homepage": "https://github.com/haiyewei/gitreference#readme",
|
|
34
|
+
"bugs": {
|
|
35
|
+
"url": "https://github.com/haiyewei/gitreference/issues"
|
|
36
|
+
},
|
|
37
|
+
"engines": {
|
|
38
|
+
"node": ">=18.0.0"
|
|
39
|
+
},
|
|
40
|
+
"type": "commonjs",
|
|
41
|
+
"files": [
|
|
42
|
+
"dist",
|
|
43
|
+
"README.md",
|
|
44
|
+
"README.zh-CN.md"
|
|
45
|
+
],
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"@inquirer/prompts": "^8.1.0",
|
|
48
|
+
"chalk": "^5.6.2",
|
|
49
|
+
"commander": "^14.0.2",
|
|
50
|
+
"fs-extra": "^11.3.3",
|
|
51
|
+
"ora": "^9.0.0"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@types/fs-extra": "^11.0.4",
|
|
55
|
+
"@types/inquirer": "^9.0.9",
|
|
56
|
+
"@types/node": "^25.0.3",
|
|
57
|
+
"typescript": "^5.9.3"
|
|
58
|
+
}
|
|
59
|
+
}
|