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.
Files changed (68) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +503 -0
  3. package/README.zh-CN.md +503 -0
  4. package/dist/cli.d.ts +3 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +74 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/commands/add.d.ts +7 -0
  9. package/dist/commands/add.d.ts.map +1 -0
  10. package/dist/commands/add.js +92 -0
  11. package/dist/commands/add.js.map +1 -0
  12. package/dist/commands/clean.d.ts +7 -0
  13. package/dist/commands/clean.d.ts.map +1 -0
  14. package/dist/commands/clean.js +171 -0
  15. package/dist/commands/clean.js.map +1 -0
  16. package/dist/commands/config.d.ts +7 -0
  17. package/dist/commands/config.d.ts.map +1 -0
  18. package/dist/commands/config.js +170 -0
  19. package/dist/commands/config.js.map +1 -0
  20. package/dist/commands/list.d.ts +7 -0
  21. package/dist/commands/list.d.ts.map +1 -0
  22. package/dist/commands/list.js +149 -0
  23. package/dist/commands/list.js.map +1 -0
  24. package/dist/commands/load.d.ts +8 -0
  25. package/dist/commands/load.d.ts.map +1 -0
  26. package/dist/commands/load.js +239 -0
  27. package/dist/commands/load.js.map +1 -0
  28. package/dist/commands/unload.d.ts +7 -0
  29. package/dist/commands/unload.d.ts.map +1 -0
  30. package/dist/commands/unload.js +738 -0
  31. package/dist/commands/unload.js.map +1 -0
  32. package/dist/commands/update.d.ts +7 -0
  33. package/dist/commands/update.d.ts.map +1 -0
  34. package/dist/commands/update.js +471 -0
  35. package/dist/commands/update.js.map +1 -0
  36. package/dist/commands/use.d.ts +8 -0
  37. package/dist/commands/use.d.ts.map +1 -0
  38. package/dist/commands/use.js +224 -0
  39. package/dist/commands/use.js.map +1 -0
  40. package/dist/core/config.d.ts +55 -0
  41. package/dist/core/config.d.ts.map +1 -0
  42. package/dist/core/config.js +179 -0
  43. package/dist/core/config.js.map +1 -0
  44. package/dist/core/filesystem.d.ts +74 -0
  45. package/dist/core/filesystem.d.ts.map +1 -0
  46. package/dist/core/filesystem.js +300 -0
  47. package/dist/core/filesystem.js.map +1 -0
  48. package/dist/core/git.d.ts +75 -0
  49. package/dist/core/git.d.ts.map +1 -0
  50. package/dist/core/git.js +169 -0
  51. package/dist/core/git.js.map +1 -0
  52. package/dist/core/loading.d.ts +85 -0
  53. package/dist/core/loading.d.ts.map +1 -0
  54. package/dist/core/loading.js +224 -0
  55. package/dist/core/loading.js.map +1 -0
  56. package/dist/core/repository.d.ts +120 -0
  57. package/dist/core/repository.d.ts.map +1 -0
  58. package/dist/core/repository.js +374 -0
  59. package/dist/core/repository.js.map +1 -0
  60. package/dist/core/sync.d.ts +72 -0
  61. package/dist/core/sync.d.ts.map +1 -0
  62. package/dist/core/sync.js +226 -0
  63. package/dist/core/sync.js.map +1 -0
  64. package/dist/types/index.d.ts +135 -0
  65. package/dist/types/index.d.ts.map +1 -0
  66. package/dist/types/index.js +63 -0
  67. package/dist/types/index.js.map +1 -0
  68. 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
+ }