agent-ide 0.9.3 → 0.9.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/dist/core/move/file-scanner.d.ts +2 -1
- package/dist/core/move/file-scanner.d.ts.map +1 -1
- package/dist/core/move/file-scanner.js +6 -3
- package/dist/core/move/file-scanner.js.map +1 -1
- package/dist/core/move/path-calculator.d.ts +3 -1
- package/dist/core/move/path-calculator.d.ts.map +1 -1
- package/dist/core/move/path-calculator.js +25 -3
- package/dist/core/move/path-calculator.js.map +1 -1
- package/package.json +1 -1
|
@@ -33,9 +33,10 @@ export declare class FileScanner {
|
|
|
33
33
|
*
|
|
34
34
|
* @param movedPath - 被移動的檔案路徑
|
|
35
35
|
* @param projectRoot - 專案根目錄
|
|
36
|
+
* @param excludeFiles - 要排除的檔案列表(用於目錄移動時排除同目錄內的檔案)
|
|
36
37
|
* @returns 受影響的檔案路徑列表
|
|
37
38
|
*/
|
|
38
|
-
findAffectedFiles(movedPath: string, projectRoot: string): Promise<string[]>;
|
|
39
|
+
findAffectedFiles(movedPath: string, projectRoot: string, excludeFiles?: string[]): Promise<string[]>;
|
|
39
40
|
/**
|
|
40
41
|
* 檢查檔案是否引用了指定路徑
|
|
41
42
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-scanner.d.ts","sourceRoot":"","sources":["../../../src/core/move/file-scanner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD;;;GAGG;AACH,qBAAa,WAAW;IAIpB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAJjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAGnB,UAAU,EAAE,WAAW,EACvB,cAAc,EAAE,cAAc;IAKjD;;;;;OAKG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA8BhE;;;;;OAKG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAyB7D
|
|
1
|
+
{"version":3,"file":"file-scanner.d.ts","sourceRoot":"","sources":["../../../src/core/move/file-scanner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD;;;GAGG;AACH,qBAAa,WAAW;IAIpB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAJjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAGnB,UAAU,EAAE,WAAW,EACvB,cAAc,EAAE,cAAc;IAKjD;;;;;OAKG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA8BhE;;;;;OAKG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAyB7D;;;;;;;;OAQG;IACG,iBAAiB,CACrB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,MAAM,EAAO,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IAmDpB;;;;;;OAMG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAuBjF"}
|
|
@@ -86,15 +86,18 @@ export class FileScanner {
|
|
|
86
86
|
*
|
|
87
87
|
* @param movedPath - 被移動的檔案路徑
|
|
88
88
|
* @param projectRoot - 專案根目錄
|
|
89
|
+
* @param excludeFiles - 要排除的檔案列表(用於目錄移動時排除同目錄內的檔案)
|
|
89
90
|
* @returns 受影響的檔案路徑列表
|
|
90
91
|
*/
|
|
91
|
-
async findAffectedFiles(movedPath, projectRoot) {
|
|
92
|
+
async findAffectedFiles(movedPath, projectRoot, excludeFiles = []) {
|
|
92
93
|
const files = await this.getAllProjectFiles(projectRoot);
|
|
93
94
|
const normalizedMovedPath = path.normalize(movedPath);
|
|
94
|
-
|
|
95
|
+
const normalizedExcludeFiles = new Set(excludeFiles.map(f => path.normalize(f)));
|
|
96
|
+
// 過濾出需要檢查的檔案(排除被移動的檔案本身和 excludeFiles)
|
|
95
97
|
const filesToCheck = files.filter(file => {
|
|
96
98
|
const normalizedFile = path.normalize(file);
|
|
97
|
-
return normalizedFile !== normalizedMovedPath
|
|
99
|
+
return normalizedFile !== normalizedMovedPath
|
|
100
|
+
&& !normalizedExcludeFiles.has(normalizedFile);
|
|
98
101
|
});
|
|
99
102
|
// 並行讀取所有檔案內容
|
|
100
103
|
const fileContents = await Promise.all(filesToCheck.map(async (file) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-scanner.js","sourceRoot":"","sources":["../../../src/core/move/file-scanner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAElF;;;GAGG;AACH,MAAM,OAAO,WAAW;IAIH;IACA;IAJF,SAAS,CAAY;IAEtC,YACmB,UAAuB,EACvB,cAA8B;QAD9B,eAAU,GAAV,UAAU,CAAa;QACvB,mBAAc,GAAd,cAAc,CAAgB;QAE/C,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CAAC,WAAmB;QAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,MAAM,OAAO,GAAG,KAAK,EAAE,GAAW,EAAiB,EAAE;YACnD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAEzD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;wBACtB,UAAU;wBACV,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;4BACnE,SAAS;wBACX,CAAC;wBACD,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC5B,CAAC;yBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBACxB,YAAY;wBACZ,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;4BAC7D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACzB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,mBAAmB,CAAC,OAAe;QACvC,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,MAAM,OAAO,GAAG,KAAK,EAAE,GAAW,EAAiB,EAAE;YACnD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAEzD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;wBACtB,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC5B,CAAC;yBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBACxB,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;4BAC7D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACzB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"file-scanner.js","sourceRoot":"","sources":["../../../src/core/move/file-scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,8 +42,10 @@ export declare class PathCalculator {
|
|
|
42
42
|
*
|
|
43
43
|
* @param source - 來源檔案路徑
|
|
44
44
|
* @param target - 目標檔案路徑
|
|
45
|
+
* @param movedDirectory - 被移動的目錄路徑(目錄移動時使用)
|
|
46
|
+
* @param filesInMovedDir - 被移動目錄內的所有檔案(目錄移動時使用)
|
|
45
47
|
* @returns 路徑更新列表
|
|
46
48
|
*/
|
|
47
|
-
calculateMovedFileInternalUpdates(source: string, target: string): Promise<PathUpdate[]>;
|
|
49
|
+
calculateMovedFileInternalUpdates(source: string, target: string, movedDirectory?: string, filesInMovedDir?: string[]): Promise<PathUpdate[]>;
|
|
48
50
|
}
|
|
49
51
|
//# sourceMappingURL=path-calculator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-calculator.d.ts","sourceRoot":"","sources":["../../../src/core/move/path-calculator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;GAGG;AACH,qBAAa,cAAc;IAKvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IALjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;gBAGvB,UAAU,EAAE,WAAW,EACvB,cAAc,EAAE,cAAc;IAMjD;;;;;;;;;OASG;IACG,4BAA4B,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,OAAO,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"path-calculator.d.ts","sourceRoot":"","sources":["../../../src/core/move/path-calculator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;GAGG;AACH,qBAAa,cAAc;IAKvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IALjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;gBAGvB,UAAU,EAAE,WAAW,EACvB,cAAc,EAAE,cAAc;IAMjD;;;;;;;;;OASG;IACG,4BAA4B,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,OAAO,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,EAAE,CAAC;IAoDxB;;;;;;;;OAQG;IACG,oBAAoB,CACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,EAAE,CAAC;IAmDxB;;;;;;;;;OASG;IACG,iCAAiC,CACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,EACvB,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,UAAU,EAAE,CAAC;CAoEzB"}
|
|
@@ -40,13 +40,15 @@ export class PathCalculator {
|
|
|
40
40
|
const relativePath = path.relative(source, filePath);
|
|
41
41
|
const newFilePath = path.join(target, relativePath);
|
|
42
42
|
// 更新其他檔案對目錄內檔案的引用
|
|
43
|
-
|
|
43
|
+
// 排除目錄內的所有檔案,避免重複處理
|
|
44
|
+
const affectedFiles = await this.fileScanner.findAffectedFiles(filePath, projectRoot, filesInDir);
|
|
44
45
|
for (const affectedFile of affectedFiles) {
|
|
45
46
|
const updates = await this.calculatePathUpdates(affectedFile, filePath, newFilePath);
|
|
46
47
|
pathUpdates.push(...updates);
|
|
47
48
|
}
|
|
48
49
|
// 更新目錄內檔案的內部 import
|
|
49
|
-
|
|
50
|
+
// 傳入目錄資訊,讓方法知道哪些引用不需要更新
|
|
51
|
+
const internalUpdates = await this.calculateMovedFileInternalUpdates(filePath, newFilePath, source, filesInDir);
|
|
50
52
|
pathUpdates.push(...internalUpdates);
|
|
51
53
|
}
|
|
52
54
|
}
|
|
@@ -114,9 +116,11 @@ export class PathCalculator {
|
|
|
114
116
|
*
|
|
115
117
|
* @param source - 來源檔案路徑
|
|
116
118
|
* @param target - 目標檔案路徑
|
|
119
|
+
* @param movedDirectory - 被移動的目錄路徑(目錄移動時使用)
|
|
120
|
+
* @param filesInMovedDir - 被移動目錄內的所有檔案(目錄移動時使用)
|
|
117
121
|
* @returns 路徑更新列表
|
|
118
122
|
*/
|
|
119
|
-
async calculateMovedFileInternalUpdates(source, target) {
|
|
123
|
+
async calculateMovedFileInternalUpdates(source, target, movedDirectory, filesInMovedDir) {
|
|
120
124
|
const updates = [];
|
|
121
125
|
try {
|
|
122
126
|
const content = await this.fileSystem.readFile(source, 'utf-8');
|
|
@@ -125,6 +129,10 @@ export class PathCalculator {
|
|
|
125
129
|
if (!imports || !Array.isArray(imports)) {
|
|
126
130
|
return updates;
|
|
127
131
|
}
|
|
132
|
+
// 如果是目錄移動,建立 Set 以快速查找
|
|
133
|
+
const normalizedFilesInDir = filesInMovedDir
|
|
134
|
+
? new Set(filesInMovedDir.map(f => path.normalize(f)))
|
|
135
|
+
: null;
|
|
128
136
|
for (const importStatement of imports) {
|
|
129
137
|
// 跳過 node_modules
|
|
130
138
|
if (this.importResolver.isNodeModuleImport(importStatement.path)) {
|
|
@@ -135,6 +143,20 @@ export class PathCalculator {
|
|
|
135
143
|
// 計算這個 import 當前指向的檔案
|
|
136
144
|
const sourceDir = path.dirname(source);
|
|
137
145
|
const currentResolved = path.resolve(sourceDir, importStatement.path);
|
|
146
|
+
const normalizedResolved = path.normalize(currentResolved);
|
|
147
|
+
// 如果是目錄移動,檢查被引用的檔案是否也在被移動的目錄內
|
|
148
|
+
if (movedDirectory && normalizedFilesInDir) {
|
|
149
|
+
// 嘗試解析到實際檔案(處理省略副檔名的情況)
|
|
150
|
+
const possibleExtensions = ['.ts', '.tsx', '.js', '.jsx', ''];
|
|
151
|
+
const isTargetInMovedDir = possibleExtensions.some(ext => {
|
|
152
|
+
const fullPath = path.normalize(normalizedResolved + ext);
|
|
153
|
+
return normalizedFilesInDir.has(fullPath);
|
|
154
|
+
});
|
|
155
|
+
// 如果目標檔案也在被移動的目錄內,相對位置不變,跳過更新
|
|
156
|
+
if (isTargetInMovedDir) {
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
138
160
|
// 計算從新位置應該如何 import 這個檔案
|
|
139
161
|
const newImportPath = this.pathUtils.calculateNewImportPath(target, currentResolved);
|
|
140
162
|
// 如果路徑改變了,加入更新列表
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-calculator.js","sourceRoot":"","sources":["../../../src/core/move/path-calculator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD;;;GAGG;AACH,MAAM,OAAO,cAAc;IAKN;IACA;IALF,SAAS,CAAY;IACrB,WAAW,CAAc;IAE1C,YACmB,UAAuB,EACvB,cAA8B;QAD9B,eAAU,GAAV,UAAU,CAAa;QACvB,mBAAc,GAAd,cAAc,CAAgB;QAE/C,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,4BAA4B,CAChC,MAAc,EACd,MAAc,EACd,WAAoB,EACpB,WAAmB;QAEnB,MAAM,WAAW,GAAiB,EAAE,CAAC;QAErC,IAAI,WAAW,EAAE,CAAC;YAChB,iBAAiB;YACjB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAEtE,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;gBAClC,gBAAgB;gBAChB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACrD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBAEpD,kBAAkB;gBAClB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"path-calculator.js","sourceRoot":"","sources":["../../../src/core/move/path-calculator.ts"],"names":[],"mappings":"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"}
|