grf-cli 1.0.2 → 1.0.4
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 +15 -7
- package/README.zh-CN.md +15 -7
- package/dist/cli.js +2 -14
- package/dist/cli.js.map +1 -1
- package/dist/commands/add/display.d.ts +10 -0
- package/dist/commands/add/display.d.ts.map +1 -0
- package/dist/commands/add/display.js +25 -0
- package/dist/commands/add/display.js.map +1 -0
- package/dist/commands/add/helpers.d.ts +11 -0
- package/dist/commands/add/helpers.d.ts.map +1 -0
- package/dist/commands/add/helpers.js +59 -0
- package/dist/commands/add/helpers.js.map +1 -0
- package/dist/commands/add/index.d.ts +12 -0
- package/dist/commands/add/index.d.ts.map +1 -0
- package/dist/commands/add/index.js +57 -0
- package/dist/commands/add/index.js.map +1 -0
- package/dist/commands/add/types.d.ts +32 -0
- package/dist/commands/add/types.d.ts.map +1 -0
- package/dist/commands/add/types.js +6 -0
- package/dist/commands/add/types.js.map +1 -0
- package/dist/commands/add.d.ts +5 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +21 -21
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/clean/display.d.ts +30 -0
- package/dist/commands/clean/display.d.ts.map +1 -0
- package/dist/commands/clean/display.js +67 -0
- package/dist/commands/clean/display.js.map +1 -0
- package/dist/commands/clean/handlers/clean-all.d.ts +12 -0
- package/dist/commands/clean/handlers/clean-all.d.ts.map +1 -0
- package/dist/commands/clean/handlers/clean-all.js +43 -0
- package/dist/commands/clean/handlers/clean-all.js.map +1 -0
- package/dist/commands/clean/handlers/clean-single.d.ts +13 -0
- package/dist/commands/clean/handlers/clean-single.d.ts.map +1 -0
- package/dist/commands/clean/handlers/clean-single.js +78 -0
- package/dist/commands/clean/handlers/clean-single.js.map +1 -0
- package/dist/commands/clean/handlers/index.d.ts +6 -0
- package/dist/commands/clean/handlers/index.d.ts.map +1 -0
- package/dist/commands/clean/handlers/index.js +11 -0
- package/dist/commands/clean/handlers/index.js.map +1 -0
- package/dist/commands/clean/helpers.d.ts +25 -0
- package/dist/commands/clean/helpers.d.ts.map +1 -0
- package/dist/commands/clean/helpers.js +70 -0
- package/dist/commands/clean/helpers.js.map +1 -0
- package/dist/commands/clean/index.d.ts +12 -0
- package/dist/commands/clean/index.d.ts.map +1 -0
- package/dist/commands/clean/index.js +90 -0
- package/dist/commands/clean/index.js.map +1 -0
- package/dist/commands/clean/types.d.ts +21 -0
- package/dist/commands/clean/types.d.ts.map +1 -0
- package/dist/commands/clean/types.js +6 -0
- package/dist/commands/clean/types.js.map +1 -0
- package/dist/commands/clean.d.ts +5 -0
- package/dist/commands/clean.d.ts.map +1 -1
- package/dist/commands/clean.js +18 -35
- package/dist/commands/clean.js.map +1 -1
- package/dist/commands/config/display.d.ts +36 -0
- package/dist/commands/config/display.d.ts.map +1 -0
- package/dist/commands/config/display.js +86 -0
- package/dist/commands/config/display.js.map +1 -0
- package/dist/commands/config/handlers/index.d.ts +8 -0
- package/dist/commands/config/handlers/index.d.ts.map +1 -0
- package/dist/commands/config/handlers/index.js +15 -0
- package/dist/commands/config/handlers/index.js.map +1 -0
- package/dist/commands/config/handlers/set-value.d.ts +11 -0
- package/dist/commands/config/handlers/set-value.d.ts.map +1 -0
- package/dist/commands/config/handlers/set-value.js +36 -0
- package/dist/commands/config/handlers/set-value.js.map +1 -0
- package/dist/commands/config/handlers/show-all.d.ts +11 -0
- package/dist/commands/config/handlers/show-all.d.ts.map +1 -0
- package/dist/commands/config/handlers/show-all.js +24 -0
- package/dist/commands/config/handlers/show-all.js.map +1 -0
- package/dist/commands/config/handlers/show-path.d.ts +11 -0
- package/dist/commands/config/handlers/show-path.d.ts.map +1 -0
- package/dist/commands/config/handlers/show-path.js +20 -0
- package/dist/commands/config/handlers/show-path.js.map +1 -0
- package/dist/commands/config/handlers/show-value.d.ts +11 -0
- package/dist/commands/config/handlers/show-value.d.ts.map +1 -0
- package/dist/commands/config/handlers/show-value.js +31 -0
- package/dist/commands/config/handlers/show-value.js.map +1 -0
- package/dist/commands/config/helpers.d.ts +23 -0
- package/dist/commands/config/helpers.d.ts.map +1 -0
- package/dist/commands/config/helpers.js +53 -0
- package/dist/commands/config/helpers.js.map +1 -0
- package/dist/commands/config/index.d.ts +12 -0
- package/dist/commands/config/index.d.ts.map +1 -0
- package/dist/commands/config/index.js +56 -0
- package/dist/commands/config/index.js.map +1 -0
- package/dist/commands/config/types.d.ts +31 -0
- package/dist/commands/config/types.d.ts.map +1 -0
- package/dist/commands/config/types.js +13 -0
- package/dist/commands/config/types.js.map +1 -0
- package/dist/commands/config.d.ts +5 -0
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +22 -41
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/index.d.ts +27 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +52 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/list/display.d.ts +39 -0
- package/dist/commands/list/display.d.ts.map +1 -0
- package/dist/commands/list/display.js +144 -0
- package/dist/commands/list/display.js.map +1 -0
- package/dist/commands/list/index.d.ts +12 -0
- package/dist/commands/list/index.d.ts.map +1 -0
- package/dist/commands/list/index.js +128 -0
- package/dist/commands/list/index.js.map +1 -0
- package/dist/commands/list/types.d.ts +32 -0
- package/dist/commands/list/types.d.ts.map +1 -0
- package/dist/commands/list/types.js +6 -0
- package/dist/commands/list/types.js.map +1 -0
- package/dist/commands/list.d.ts +5 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +29 -60
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/load/display.d.ts +28 -0
- package/dist/commands/load/display.d.ts.map +1 -0
- package/dist/commands/load/display.js +53 -0
- package/dist/commands/load/display.js.map +1 -0
- package/dist/commands/load/handlers/copy-repo.d.ts +13 -0
- package/dist/commands/load/handlers/copy-repo.d.ts.map +1 -0
- package/dist/commands/load/handlers/copy-repo.js +82 -0
- package/dist/commands/load/handlers/copy-repo.js.map +1 -0
- package/dist/commands/load/handlers/index.d.ts +6 -0
- package/dist/commands/load/handlers/index.d.ts.map +1 -0
- package/dist/commands/load/handlers/index.js +11 -0
- package/dist/commands/load/handlers/index.js.map +1 -0
- package/dist/commands/load/handlers/url-add.d.ts +13 -0
- package/dist/commands/load/handlers/url-add.d.ts.map +1 -0
- package/dist/commands/load/handlers/url-add.js +50 -0
- package/dist/commands/load/handlers/url-add.js.map +1 -0
- package/dist/commands/load/helpers.d.ts +81 -0
- package/dist/commands/load/helpers.d.ts.map +1 -0
- package/dist/commands/load/helpers.js +199 -0
- package/dist/commands/load/helpers.js.map +1 -0
- package/dist/commands/load/index.d.ts +13 -0
- package/dist/commands/load/index.d.ts.map +1 -0
- package/dist/commands/load/index.js +46 -0
- package/dist/commands/load/index.js.map +1 -0
- package/dist/commands/load/types.d.ts +37 -0
- package/dist/commands/load/types.d.ts.map +1 -0
- package/dist/commands/load/types.js +6 -0
- package/dist/commands/load/types.js.map +1 -0
- package/dist/commands/load.d.ts +5 -0
- package/dist/commands/load.d.ts.map +1 -1
- package/dist/commands/load.js +27 -64
- package/dist/commands/load.js.map +1 -1
- package/dist/commands/options/all.d.ts +11 -0
- package/dist/commands/options/all.d.ts.map +1 -0
- package/dist/commands/options/all.js +14 -0
- package/dist/commands/options/all.js.map +1 -0
- package/dist/commands/options/branch.d.ts +11 -0
- package/dist/commands/options/branch.d.ts.map +1 -0
- package/dist/commands/options/branch.js +14 -0
- package/dist/commands/options/branch.js.map +1 -0
- package/dist/commands/options/check.d.ts +11 -0
- package/dist/commands/options/check.d.ts.map +1 -0
- package/dist/commands/options/check.js +14 -0
- package/dist/commands/options/check.js.map +1 -0
- package/dist/commands/options/clean-empty.d.ts +11 -0
- package/dist/commands/options/clean-empty.d.ts.map +1 -0
- package/dist/commands/options/clean-empty.js +14 -0
- package/dist/commands/options/clean-empty.js.map +1 -0
- package/dist/commands/options/depth.d.ts +11 -0
- package/dist/commands/options/depth.d.ts.map +1 -0
- package/dist/commands/options/depth.js +14 -0
- package/dist/commands/options/depth.js.map +1 -0
- package/dist/commands/options/dry-run.d.ts +11 -0
- package/dist/commands/options/dry-run.d.ts.map +1 -0
- package/dist/commands/options/dry-run.js +14 -0
- package/dist/commands/options/dry-run.js.map +1 -0
- package/dist/commands/options/force.d.ts +11 -0
- package/dist/commands/options/force.d.ts.map +1 -0
- package/dist/commands/options/force.js +14 -0
- package/dist/commands/options/force.js.map +1 -0
- package/dist/commands/options/index.d.ts +24 -0
- package/dist/commands/options/index.d.ts.map +1 -0
- package/dist/commands/options/index.js +53 -0
- package/dist/commands/options/index.js.map +1 -0
- package/dist/commands/options/json.d.ts +11 -0
- package/dist/commands/options/json.d.ts.map +1 -0
- package/dist/commands/options/json.js +14 -0
- package/dist/commands/options/json.js.map +1 -0
- package/dist/commands/options/keep-empty.d.ts +11 -0
- package/dist/commands/options/keep-empty.d.ts.map +1 -0
- package/dist/commands/options/keep-empty.js +14 -0
- package/dist/commands/options/keep-empty.js.map +1 -0
- package/dist/commands/options/list.d.ts +11 -0
- package/dist/commands/options/list.d.ts.map +1 -0
- package/dist/commands/options/list.js +14 -0
- package/dist/commands/options/list.js.map +1 -0
- package/dist/commands/options/name.d.ts +11 -0
- package/dist/commands/options/name.d.ts.map +1 -0
- package/dist/commands/options/name.js +14 -0
- package/dist/commands/options/name.js.map +1 -0
- package/dist/commands/options/no-ignore.d.ts +11 -0
- package/dist/commands/options/no-ignore.d.ts.map +1 -0
- package/dist/commands/options/no-ignore.js +14 -0
- package/dist/commands/options/no-ignore.js.map +1 -0
- package/dist/commands/options/path.d.ts +11 -0
- package/dist/commands/options/path.d.ts.map +1 -0
- package/dist/commands/options/path.js +14 -0
- package/dist/commands/options/path.js.map +1 -0
- package/dist/commands/options/shallow.d.ts +16 -0
- package/dist/commands/options/shallow.d.ts.map +1 -0
- package/dist/commands/options/shallow.js +19 -0
- package/dist/commands/options/shallow.js.map +1 -0
- package/dist/commands/options/status.d.ts +11 -0
- package/dist/commands/options/status.d.ts.map +1 -0
- package/dist/commands/options/status.js +14 -0
- package/dist/commands/options/status.js.map +1 -0
- package/dist/commands/options/subdir.d.ts +11 -0
- package/dist/commands/options/subdir.d.ts.map +1 -0
- package/dist/commands/options/subdir.js +14 -0
- package/dist/commands/options/subdir.js.map +1 -0
- package/dist/commands/options/sync-only.d.ts +11 -0
- package/dist/commands/options/sync-only.d.ts.map +1 -0
- package/dist/commands/options/sync-only.js +14 -0
- package/dist/commands/options/sync-only.js.map +1 -0
- package/dist/commands/options/sync.d.ts +11 -0
- package/dist/commands/options/sync.d.ts.map +1 -0
- package/dist/commands/options/sync.js +14 -0
- package/dist/commands/options/sync.js.map +1 -0
- package/dist/commands/options/verbose.d.ts +11 -0
- package/dist/commands/options/verbose.d.ts.map +1 -0
- package/dist/commands/options/verbose.js +14 -0
- package/dist/commands/options/verbose.js.map +1 -0
- package/dist/commands/unload/display.d.ts +29 -0
- package/dist/commands/unload/display.d.ts.map +1 -0
- package/dist/commands/unload/display.js +125 -0
- package/dist/commands/unload/display.js.map +1 -0
- package/dist/commands/unload/handlers/clean-empty.d.ts +11 -0
- package/dist/commands/unload/handlers/clean-empty.d.ts.map +1 -0
- package/dist/commands/unload/handlers/clean-empty.js +111 -0
- package/dist/commands/unload/handlers/clean-empty.js.map +1 -0
- package/dist/commands/unload/handlers/index.d.ts +8 -0
- package/dist/commands/unload/handlers/index.d.ts.map +1 -0
- package/dist/commands/unload/handlers/index.js +15 -0
- package/dist/commands/unload/handlers/index.js.map +1 -0
- package/dist/commands/unload/handlers/list.d.ts +11 -0
- package/dist/commands/unload/handlers/list.d.ts.map +1 -0
- package/dist/commands/unload/handlers/list.js +42 -0
- package/dist/commands/unload/handlers/list.js.map +1 -0
- package/dist/commands/unload/handlers/remove-all.d.ts +11 -0
- package/dist/commands/unload/handlers/remove-all.d.ts.map +1 -0
- package/dist/commands/unload/handlers/remove-all.js +184 -0
- package/dist/commands/unload/handlers/remove-all.js.map +1 -0
- package/dist/commands/unload/handlers/remove-single.d.ts +12 -0
- package/dist/commands/unload/handlers/remove-single.d.ts.map +1 -0
- package/dist/commands/unload/handlers/remove-single.js +217 -0
- package/dist/commands/unload/handlers/remove-single.js.map +1 -0
- package/dist/commands/unload/helpers.d.ts +55 -0
- package/dist/commands/unload/helpers.d.ts.map +1 -0
- package/dist/commands/unload/helpers.js +256 -0
- package/dist/commands/unload/helpers.js.map +1 -0
- package/dist/commands/unload/index.d.ts +12 -0
- package/dist/commands/unload/index.d.ts.map +1 -0
- package/dist/commands/unload/index.js +121 -0
- package/dist/commands/unload/index.js.map +1 -0
- package/dist/commands/unload/types.d.ts +53 -0
- package/dist/commands/unload/types.d.ts.map +1 -0
- package/dist/commands/unload/types.js +6 -0
- package/dist/commands/unload/types.js.map +1 -0
- package/dist/commands/unload.d.ts +6 -1
- package/dist/commands/unload.d.ts.map +1 -1
- package/dist/commands/unload.js +165 -169
- package/dist/commands/unload.js.map +1 -1
- package/dist/commands/update/display.d.ts +30 -0
- package/dist/commands/update/display.d.ts.map +1 -0
- package/dist/commands/update/display.js +161 -0
- package/dist/commands/update/display.js.map +1 -0
- package/dist/commands/update/handlers/index.d.ts +8 -0
- package/dist/commands/update/handlers/index.d.ts.map +1 -0
- package/dist/commands/update/handlers/index.js +15 -0
- package/dist/commands/update/handlers/index.js.map +1 -0
- package/dist/commands/update/handlers/status.d.ts +11 -0
- package/dist/commands/update/handlers/status.d.ts.map +1 -0
- package/dist/commands/update/handlers/status.js +20 -0
- package/dist/commands/update/handlers/status.js.map +1 -0
- package/dist/commands/update/handlers/sync-only.d.ts +11 -0
- package/dist/commands/update/handlers/sync-only.d.ts.map +1 -0
- package/dist/commands/update/handlers/sync-only.js +41 -0
- package/dist/commands/update/handlers/sync-only.js.map +1 -0
- package/dist/commands/update/handlers/update-all.d.ts +10 -0
- package/dist/commands/update/handlers/update-all.d.ts.map +1 -0
- package/dist/commands/update/handlers/update-all.js +125 -0
- package/dist/commands/update/handlers/update-all.js.map +1 -0
- package/dist/commands/update/handlers/update-single.d.ts +11 -0
- package/dist/commands/update/handlers/update-single.d.ts.map +1 -0
- package/dist/commands/update/handlers/update-single.js +154 -0
- package/dist/commands/update/handlers/update-single.js.map +1 -0
- package/dist/commands/update/helpers.d.ts +13 -0
- package/dist/commands/update/helpers.d.ts.map +1 -0
- package/dist/commands/update/helpers.js +86 -0
- package/dist/commands/update/helpers.js.map +1 -0
- package/dist/commands/update/index.d.ts +12 -0
- package/dist/commands/update/index.d.ts.map +1 -0
- package/dist/commands/update/index.js +67 -0
- package/dist/commands/update/index.js.map +1 -0
- package/dist/commands/update/types.d.ts +55 -0
- package/dist/commands/update/types.d.ts.map +1 -0
- package/dist/commands/update/types.js +6 -0
- package/dist/commands/update/types.js.map +1 -0
- package/dist/commands/update.d.ts +6 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +73 -80
- package/dist/commands/update.js.map +1 -1
- package/dist/core/config-manager.d.ts +83 -0
- package/dist/core/config-manager.d.ts.map +1 -0
- package/dist/core/config-manager.js +170 -0
- package/dist/core/config-manager.js.map +1 -0
- package/dist/core/config.d.ts +22 -2
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +71 -35
- package/dist/core/config.js.map +1 -1
- package/dist/core/filesystem.js +1 -1
- package/dist/core/filesystem.js.map +1 -1
- package/dist/core/loading-state.d.ts +141 -0
- package/dist/core/loading-state.d.ts.map +1 -0
- package/dist/core/loading-state.js +237 -0
- package/dist/core/loading-state.js.map +1 -0
- package/dist/core/loading.d.ts +24 -27
- package/dist/core/loading.d.ts.map +1 -1
- package/dist/core/loading.js +127 -88
- package/dist/core/loading.js.map +1 -1
- package/dist/core/migration.d.ts +54 -0
- package/dist/core/migration.d.ts.map +1 -0
- package/dist/core/migration.js +277 -0
- package/dist/core/migration.js.map +1 -0
- package/dist/core/paths.d.ts +58 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/paths.js +103 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/repos-index.d.ts +113 -0
- package/dist/core/repos-index.d.ts.map +1 -0
- package/dist/core/repos-index.js +206 -0
- package/dist/core/repos-index.js.map +1 -0
- package/dist/core/repository.js +2 -2
- package/dist/core/repository.js.map +1 -1
- package/dist/core/sync.d.ts.map +1 -1
- package/dist/core/sync.js +3 -3
- package/dist/core/sync.js.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/ui/format.d.ts +159 -0
- package/dist/ui/format.d.ts.map +1 -0
- package/dist/ui/format.js +300 -0
- package/dist/ui/format.js.map +1 -0
- package/dist/ui/index.d.ts +9 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +53 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/prompt.d.ts +94 -0
- package/dist/ui/prompt.d.ts.map +1 -0
- package/dist/ui/prompt.js +223 -0
- package/dist/ui/prompt.js.map +1 -0
- package/dist/ui/spinner.d.ts +99 -0
- package/dist/ui/spinner.d.ts.map +1 -0
- package/dist/ui/spinner.js +136 -0
- package/dist/ui/spinner.js.map +1 -0
- package/dist/ui/table.d.ts +142 -0
- package/dist/ui/table.d.ts.map +1 -0
- package/dist/ui/table.js +213 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/utils/constants.d.ts +152 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +160 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/error.d.ts +109 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/error.js +212 -0
- package/dist/utils/error.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +44 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/validation.d.ts +122 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +248 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +23 -3
package/dist/core/loading.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* loading.json
|
|
3
|
+
* loading.json 管理模块(兼容层)
|
|
4
4
|
* 用于追踪已加载的参考代码仓库
|
|
5
|
+
*
|
|
6
|
+
* 此模块现在作为兼容层,内部使用 loading-state.ts 模块
|
|
7
|
+
* 保持原有 API 不变,确保向后兼容
|
|
5
8
|
*/
|
|
6
9
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
10
|
if (k2 === undefined) k2 = k;
|
|
@@ -49,176 +52,212 @@ exports.removeEntry = removeEntry;
|
|
|
49
52
|
exports.removeEntryByTargetPath = removeEntryByTargetPath;
|
|
50
53
|
exports.clearAllEntries = clearAllEntries;
|
|
51
54
|
exports.updateEntry = updateEntry;
|
|
52
|
-
const fs = __importStar(require("fs/promises"));
|
|
53
55
|
const path = __importStar(require("path"));
|
|
54
56
|
const crypto_1 = require("crypto");
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
-
/** .gitreference 目录名 */
|
|
58
|
-
const GITREFERENCE_DIR = ".gitreference";
|
|
57
|
+
const paths_js_1 = require("./paths.js");
|
|
58
|
+
const loading_state_js_1 = require("./loading-state.js");
|
|
59
59
|
/** 当前配置版本 */
|
|
60
60
|
const CONFIG_VERSION = "1.0.0";
|
|
61
|
+
/**
|
|
62
|
+
* 从 RepoLoadingState 和键构建 LoadingEntry
|
|
63
|
+
* @param key 唯一键 (workingDirectory::targetPath)
|
|
64
|
+
* @param state 加载状态
|
|
65
|
+
* @returns LoadingEntry 对象
|
|
66
|
+
*/
|
|
67
|
+
function buildEntryFromState(key, state) {
|
|
68
|
+
// 从 targetPath 中提取 repoName(用于显示)
|
|
69
|
+
// targetPath 格式通常为 .gitreference/owner/repo 或自定义路径
|
|
70
|
+
const pathParts = state.targetPath.split("/");
|
|
71
|
+
const repoName = pathParts.length >= 3
|
|
72
|
+
? `${pathParts[pathParts.length - 2]}/${pathParts[pathParts.length - 1]}`
|
|
73
|
+
: pathParts[pathParts.length - 1] || state.targetPath;
|
|
74
|
+
return {
|
|
75
|
+
id: (0, crypto_1.randomUUID)(), // 每次构建时生成新 ID(兼容层限制)
|
|
76
|
+
repoName,
|
|
77
|
+
repoUrl: "", // 新模块不存储此信息
|
|
78
|
+
commitId: "", // 新模块不存储此信息
|
|
79
|
+
branch: state.branch,
|
|
80
|
+
targetPath: state.targetPath,
|
|
81
|
+
loadedAt: state.loadedAt,
|
|
82
|
+
workingDirectory: state.workingDirectory,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
61
85
|
/**
|
|
62
86
|
* 获取 loading.json 文件路径
|
|
63
|
-
* @
|
|
64
|
-
* @returns loading.json 的绝对路径
|
|
87
|
+
* @returns loading.json 的绝对路径(位于用户主目录下)
|
|
65
88
|
*/
|
|
66
|
-
function getLoadingFilePath(
|
|
67
|
-
|
|
89
|
+
function getLoadingFilePath() {
|
|
90
|
+
// 使用新的路径管理模块
|
|
91
|
+
return (0, paths_js_1.getLoadingStatePath)();
|
|
68
92
|
}
|
|
69
93
|
/**
|
|
70
94
|
* 读取 loading.json 配置
|
|
71
|
-
* @param projectRoot 项目根目录
|
|
72
95
|
* @returns 加载配置,如果文件不存在则返回空配置
|
|
73
96
|
*/
|
|
74
|
-
async function readLoadingConfig(
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
version: CONFIG_VERSION,
|
|
84
|
-
entries: [],
|
|
85
|
-
};
|
|
86
|
-
}
|
|
97
|
+
async function readLoadingConfig() {
|
|
98
|
+
// 从新模块获取所有加载状态
|
|
99
|
+
const states = await (0, loading_state_js_1.getAllLoadingStates)();
|
|
100
|
+
// 转换为 LoadingEntry 格式
|
|
101
|
+
const entries = Object.entries(states).map(([key, state]) => buildEntryFromState(key, state));
|
|
102
|
+
return {
|
|
103
|
+
version: CONFIG_VERSION,
|
|
104
|
+
entries,
|
|
105
|
+
};
|
|
87
106
|
}
|
|
88
107
|
/**
|
|
89
108
|
* 写入 loading.json 配置
|
|
90
109
|
* @param config 加载配置
|
|
91
|
-
* @
|
|
110
|
+
* @deprecated 此函数保留用于兼容,但建议使用 addEntry/removeEntry 等函数
|
|
92
111
|
*/
|
|
93
|
-
async function writeLoadingConfig(config
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
//
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
112
|
+
async function writeLoadingConfig(config) {
|
|
113
|
+
// 清空现有状态
|
|
114
|
+
await loading_state_js_1.loadingState.clear();
|
|
115
|
+
// 逐个添加条目
|
|
116
|
+
for (const entry of config.entries) {
|
|
117
|
+
// 兼容层:旧的 LoadingEntry 没有 workingDirectory,使用空字符串作为占位
|
|
118
|
+
const workingDir = entry.workingDirectory || "";
|
|
119
|
+
await (0, loading_state_js_1.markAsLoaded)(entry.targetPath, workingDir, entry.branch);
|
|
120
|
+
}
|
|
100
121
|
}
|
|
101
122
|
/**
|
|
102
123
|
* 添加加载条目
|
|
103
|
-
* @param entry 加载条目(不含 id 和 loadedAt
|
|
104
|
-
* @param projectRoot 项目根目录
|
|
124
|
+
* @param entry 加载条目(不含 id 和 loadedAt),必须包含 workingDirectory
|
|
105
125
|
* @returns 添加的完整条目
|
|
106
126
|
*/
|
|
107
|
-
async function addEntry(entry
|
|
108
|
-
const
|
|
127
|
+
async function addEntry(entry) {
|
|
128
|
+
const loadedAt = new Date().toISOString();
|
|
129
|
+
// 使用新模块标记为已加载(使用 workingDirectory + targetPath 作为唯一键)
|
|
130
|
+
await (0, loading_state_js_1.markAsLoaded)(entry.targetPath, entry.workingDirectory, entry.branch);
|
|
131
|
+
// 构建完整的条目
|
|
109
132
|
const newEntry = {
|
|
110
133
|
...entry,
|
|
111
134
|
id: (0, crypto_1.randomUUID)(),
|
|
112
|
-
loadedAt
|
|
135
|
+
loadedAt,
|
|
113
136
|
};
|
|
114
|
-
config.entries.push(newEntry);
|
|
115
|
-
await writeLoadingConfig(config, projectRoot);
|
|
116
137
|
return newEntry;
|
|
117
138
|
}
|
|
118
139
|
/**
|
|
119
140
|
* 获取所有加载条目
|
|
120
|
-
* @param projectRoot 项目根目录
|
|
121
141
|
* @returns 加载条目列表
|
|
122
142
|
*/
|
|
123
|
-
async function getEntries(
|
|
124
|
-
const config = await readLoadingConfig(
|
|
143
|
+
async function getEntries() {
|
|
144
|
+
const config = await readLoadingConfig();
|
|
125
145
|
return config.entries;
|
|
126
146
|
}
|
|
127
147
|
/**
|
|
128
148
|
* 根据 ID 获取加载条目
|
|
129
149
|
* @param id 条目 ID
|
|
130
|
-
* @param projectRoot 项目根目录
|
|
131
150
|
* @returns 加载条目,如果不存在则返回 undefined
|
|
151
|
+
* @deprecated 新模块不支持按 ID 查询,此函数功能受限
|
|
132
152
|
*/
|
|
133
|
-
async function getEntryById(id
|
|
134
|
-
|
|
135
|
-
|
|
153
|
+
async function getEntryById(id) {
|
|
154
|
+
// 新模块不支持按 ID 查询,遍历所有条目
|
|
155
|
+
const entries = await getEntries();
|
|
156
|
+
return entries.find((entry) => entry.id === id);
|
|
136
157
|
}
|
|
137
158
|
/**
|
|
138
159
|
* 根据目标路径获取加载条目
|
|
139
160
|
* @param targetPath 目标路径
|
|
140
|
-
* @param projectRoot 项目根目录
|
|
141
161
|
* @returns 加载条目,如果不存在则返回 undefined
|
|
142
162
|
*/
|
|
143
|
-
async function getEntryByTargetPath(targetPath
|
|
144
|
-
const
|
|
145
|
-
// 标准化路径进行比较
|
|
163
|
+
async function getEntryByTargetPath(targetPath) {
|
|
164
|
+
const states = await (0, loading_state_js_1.getAllLoadingStates)();
|
|
146
165
|
const normalizedTarget = path.normalize(targetPath);
|
|
147
|
-
|
|
166
|
+
// 查找匹配的条目
|
|
167
|
+
for (const [key, state] of Object.entries(states)) {
|
|
168
|
+
if (path.normalize(state.targetPath) === normalizedTarget) {
|
|
169
|
+
return buildEntryFromState(key, state);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return undefined;
|
|
148
173
|
}
|
|
149
174
|
/**
|
|
150
175
|
* 根据仓库名称获取加载条目
|
|
151
176
|
* @param repoName 仓库名称
|
|
152
|
-
* @param projectRoot 项目根目录
|
|
153
177
|
* @returns 匹配的加载条目列表
|
|
154
178
|
*/
|
|
155
|
-
async function getEntriesByRepoName(repoName
|
|
156
|
-
const
|
|
157
|
-
|
|
179
|
+
async function getEntriesByRepoName(repoName) {
|
|
180
|
+
const states = await (0, loading_state_js_1.getAllLoadingStates)();
|
|
181
|
+
const results = [];
|
|
182
|
+
// 查找包含指定名称的仓库(在 targetPath 中搜索)
|
|
183
|
+
for (const [key, state] of Object.entries(states)) {
|
|
184
|
+
if (state.targetPath.includes(repoName)) {
|
|
185
|
+
results.push(buildEntryFromState(key, state));
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return results;
|
|
158
189
|
}
|
|
159
190
|
/**
|
|
160
191
|
* 删除加载条目
|
|
161
192
|
* @param id 条目 ID
|
|
162
|
-
* @param projectRoot 项目根目录
|
|
163
193
|
* @returns 是否成功删除
|
|
194
|
+
* @deprecated 新模块不支持按 ID 删除,此函数功能受限
|
|
164
195
|
*/
|
|
165
|
-
async function removeEntry(id
|
|
166
|
-
|
|
167
|
-
const
|
|
168
|
-
|
|
196
|
+
async function removeEntry(id) {
|
|
197
|
+
// 新模块不支持按 ID 删除,需要先找到对应的条目
|
|
198
|
+
const entries = await getEntries();
|
|
199
|
+
const entry = entries.find((e) => e.id === id);
|
|
200
|
+
if (!entry) {
|
|
169
201
|
return false;
|
|
170
202
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
return true;
|
|
203
|
+
// 使用 workingDirectory + targetPath 删除
|
|
204
|
+
return (0, loading_state_js_1.markAsUnloaded)(entry.workingDirectory || "", entry.targetPath);
|
|
174
205
|
}
|
|
175
206
|
/**
|
|
176
207
|
* 根据目标路径删除加载条目
|
|
177
208
|
* @param targetPath 目标路径
|
|
178
|
-
* @param projectRoot 项目根目录
|
|
179
209
|
* @returns 被删除的条目,如果不存在则返回 undefined
|
|
180
210
|
*/
|
|
181
|
-
async function removeEntryByTargetPath(targetPath
|
|
182
|
-
const
|
|
211
|
+
async function removeEntryByTargetPath(targetPath) {
|
|
212
|
+
const states = await (0, loading_state_js_1.getAllLoadingStates)();
|
|
183
213
|
const normalizedTarget = path.normalize(targetPath);
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
214
|
+
// 查找匹配的条目
|
|
215
|
+
for (const [key, state] of Object.entries(states)) {
|
|
216
|
+
if (path.normalize(state.targetPath) === normalizedTarget) {
|
|
217
|
+
const entry = buildEntryFromState(key, state);
|
|
218
|
+
await (0, loading_state_js_1.markAsUnloaded)(state.workingDirectory, state.targetPath);
|
|
219
|
+
return entry;
|
|
220
|
+
}
|
|
187
221
|
}
|
|
188
|
-
|
|
189
|
-
await writeLoadingConfig(config, projectRoot);
|
|
190
|
-
return removed;
|
|
222
|
+
return undefined;
|
|
191
223
|
}
|
|
192
224
|
/**
|
|
193
225
|
* 清空所有加载条目
|
|
194
|
-
* @param projectRoot 项目根目录
|
|
195
226
|
*/
|
|
196
|
-
async function clearAllEntries(
|
|
197
|
-
|
|
198
|
-
version: CONFIG_VERSION,
|
|
199
|
-
entries: [],
|
|
200
|
-
};
|
|
201
|
-
await writeLoadingConfig(config, projectRoot);
|
|
227
|
+
async function clearAllEntries() {
|
|
228
|
+
await loading_state_js_1.loadingState.clear();
|
|
202
229
|
}
|
|
203
230
|
/**
|
|
204
231
|
* 更新加载条目
|
|
205
232
|
* @param id 条目 ID
|
|
206
233
|
* @param updates 要更新的字段
|
|
207
|
-
* @param projectRoot 项目根目录
|
|
208
234
|
* @returns 更新后的条目,如果不存在则返回 undefined
|
|
235
|
+
* @deprecated 新模块不支持按 ID 更新,此函数功能受限
|
|
209
236
|
*/
|
|
210
|
-
async function updateEntry(id, updates
|
|
211
|
-
|
|
212
|
-
const
|
|
213
|
-
|
|
237
|
+
async function updateEntry(id, updates) {
|
|
238
|
+
// 新模块不支持按 ID 更新,需要先找到对应的条目
|
|
239
|
+
const entries = await getEntries();
|
|
240
|
+
const entry = entries.find((e) => e.id === id);
|
|
241
|
+
if (!entry) {
|
|
214
242
|
return undefined;
|
|
215
243
|
}
|
|
216
|
-
|
|
217
|
-
|
|
244
|
+
// 更新加载状态
|
|
245
|
+
const oldWorkingDir = entry.workingDirectory || "";
|
|
246
|
+
const oldTargetPath = entry.targetPath;
|
|
247
|
+
const newTargetPath = updates.targetPath ?? entry.targetPath;
|
|
248
|
+
const newWorkingDir = updates.workingDirectory ?? oldWorkingDir;
|
|
249
|
+
const newBranch = updates.branch ?? entry.branch;
|
|
250
|
+
// 如果路径变了,需要先删除旧的
|
|
251
|
+
if (updates.targetPath && updates.targetPath !== entry.targetPath) {
|
|
252
|
+
await (0, loading_state_js_1.markAsUnloaded)(oldWorkingDir, oldTargetPath);
|
|
253
|
+
}
|
|
254
|
+
// 设置新的状态
|
|
255
|
+
await (0, loading_state_js_1.markAsLoaded)(newTargetPath, newWorkingDir, newBranch);
|
|
256
|
+
// 返回更新后的条目
|
|
257
|
+
return {
|
|
258
|
+
...entry,
|
|
218
259
|
...updates,
|
|
219
260
|
updatedAt: new Date().toISOString(),
|
|
220
261
|
};
|
|
221
|
-
await writeLoadingConfig(config, projectRoot);
|
|
222
|
-
return config.entries[index];
|
|
223
262
|
}
|
|
224
263
|
//# sourceMappingURL=loading.js.map
|
package/dist/core/loading.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loading.js","sourceRoot":"","sources":["../../src/core/loading.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"loading.js","sourceRoot":"","sources":["../../src/core/loading.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* grf 配置迁移工具
|
|
3
|
+
* 将旧版单一 config.json 文件迁移到新的模块化配置结构
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 迁移结果接口
|
|
7
|
+
*/
|
|
8
|
+
export interface MigrationResult {
|
|
9
|
+
/** 迁移是否成功 */
|
|
10
|
+
success: boolean;
|
|
11
|
+
/** 是否执行了迁移 */
|
|
12
|
+
migrated: boolean;
|
|
13
|
+
/** 结果消息 */
|
|
14
|
+
message: string;
|
|
15
|
+
/** 详细信息 */
|
|
16
|
+
details?: {
|
|
17
|
+
/** 已迁移的配置项列表 */
|
|
18
|
+
configsMigrated: string[];
|
|
19
|
+
/** 已迁移的仓库数量 */
|
|
20
|
+
reposMigrated: number;
|
|
21
|
+
/** 备份文件路径 */
|
|
22
|
+
backupPath?: string;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 检查是否需要迁移
|
|
27
|
+
* 条件:旧配置存在且新配置目录不存在或为空
|
|
28
|
+
* @returns 是否需要迁移
|
|
29
|
+
*/
|
|
30
|
+
export declare function needsMigration(): Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* 备份旧配置文件
|
|
33
|
+
* @returns 备份文件路径,如果备份失败则返回 null
|
|
34
|
+
*/
|
|
35
|
+
export declare function backupLegacyConfig(): Promise<string | null>;
|
|
36
|
+
/**
|
|
37
|
+
* 执行配置迁移
|
|
38
|
+
* @returns 迁移结果
|
|
39
|
+
*/
|
|
40
|
+
export declare function migrateConfig(): Promise<MigrationResult>;
|
|
41
|
+
/**
|
|
42
|
+
* 验证迁移结果
|
|
43
|
+
* 检查新配置文件是否正确创建
|
|
44
|
+
* @returns 验证是否通过
|
|
45
|
+
*/
|
|
46
|
+
export declare function validateMigration(): Promise<boolean>;
|
|
47
|
+
/**
|
|
48
|
+
* 确保配置已迁移
|
|
49
|
+
* 在应用启动时调用,自动检测并执行迁移
|
|
50
|
+
* 此函数是幂等的,多次调用结果相同
|
|
51
|
+
* @returns 迁移结果
|
|
52
|
+
*/
|
|
53
|
+
export declare function ensureMigrated(): Promise<MigrationResult>;
|
|
54
|
+
//# sourceMappingURL=migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/core/migration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuBH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,aAAa;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,OAAO,CAAC,EAAE;QACR,gBAAgB;QAChB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,eAAe;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAiBD;;;;GAIG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAuCvD;AAwBD;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwBjE;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC,CAqF9D;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAmC1D;AAMD;;;;;GAKG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,eAAe,CAAC,CAqD/D"}
|