agent-ide 0.8.2 → 0.9.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/dist/core/change-signature/call-site-updater.d.ts +108 -0
- package/dist/core/change-signature/call-site-updater.d.ts.map +1 -0
- package/dist/core/change-signature/call-site-updater.js +347 -0
- package/dist/core/change-signature/call-site-updater.js.map +1 -0
- package/dist/core/change-signature/change-signature-service.d.ts +4 -55
- package/dist/core/change-signature/change-signature-service.d.ts.map +1 -1
- package/dist/core/change-signature/change-signature-service.js +17 -483
- package/dist/core/change-signature/change-signature-service.js.map +1 -1
- package/dist/core/change-signature/index.d.ts +4 -0
- package/dist/core/change-signature/index.d.ts.map +1 -1
- package/dist/core/change-signature/index.js +5 -0
- package/dist/core/change-signature/index.js.map +1 -1
- package/dist/core/change-signature/signature-transformer.d.ts +20 -0
- package/dist/core/change-signature/signature-transformer.d.ts.map +1 -0
- package/dist/core/change-signature/signature-transformer.js +91 -0
- package/dist/core/change-signature/signature-transformer.js.map +1 -0
- package/dist/core/change-signature/signature-validator.d.ts +30 -0
- package/dist/core/change-signature/signature-validator.d.ts.map +1 -0
- package/dist/core/change-signature/signature-validator.js +152 -0
- package/dist/core/change-signature/signature-validator.js.map +1 -0
- package/dist/core/change-signature/utils.d.ts +19 -0
- package/dist/core/change-signature/utils.d.ts.map +1 -0
- package/dist/core/change-signature/utils.js +23 -0
- package/dist/core/change-signature/utils.js.map +1 -0
- package/dist/core/cycles/cycle-detector.d.ts.map +1 -1
- package/dist/core/cycles/cycle-detector.js +16 -8
- package/dist/core/cycles/cycle-detector.js.map +1 -1
- package/dist/core/cycles/index.d.ts +1 -1
- package/dist/core/cycles/index.d.ts.map +1 -1
- package/dist/core/cycles/index.js +1 -1
- package/dist/core/cycles/index.js.map +1 -1
- package/dist/core/cycles/types.d.ts +20 -4
- package/dist/core/cycles/types.d.ts.map +1 -1
- package/dist/core/cycles/types.js +22 -4
- package/dist/core/cycles/types.js.map +1 -1
- package/dist/core/deadcode/dead-code-remover.js +4 -4
- package/dist/core/deadcode/dead-code-remover.js.map +1 -1
- package/dist/core/impact/dependency-extractor.d.ts +25 -0
- package/dist/core/impact/dependency-extractor.d.ts.map +1 -0
- package/dist/core/impact/dependency-extractor.js +65 -0
- package/dist/core/impact/dependency-extractor.js.map +1 -0
- package/dist/core/impact/file-scanner.d.ts +52 -0
- package/dist/core/impact/file-scanner.d.ts.map +1 -0
- package/dist/core/impact/file-scanner.js +131 -0
- package/dist/core/impact/file-scanner.js.map +1 -0
- package/dist/core/impact/impact-analyzer.d.ts +3 -64
- package/dist/core/impact/impact-analyzer.d.ts.map +1 -1
- package/dist/core/impact/impact-analyzer.js +13 -312
- package/dist/core/impact/impact-analyzer.js.map +1 -1
- package/dist/core/impact/index.d.ts +3 -0
- package/dist/core/impact/index.d.ts.map +1 -1
- package/dist/core/impact/index.js +3 -0
- package/dist/core/impact/index.js.map +1 -1
- package/dist/core/impact/path-resolver.d.ts +35 -0
- package/dist/core/impact/path-resolver.d.ts.map +1 -0
- package/dist/core/impact/path-resolver.js +166 -0
- package/dist/core/impact/path-resolver.js.map +1 -0
- package/dist/core/move/file-scanner.d.ts +48 -0
- package/dist/core/move/file-scanner.d.ts.map +1 -0
- package/dist/core/move/file-scanner.js +137 -0
- package/dist/core/move/file-scanner.js.map +1 -0
- package/dist/core/move/import-resolver.d.ts +5 -0
- package/dist/core/move/import-resolver.d.ts.map +1 -1
- package/dist/core/move/import-resolver.js +24 -6
- package/dist/core/move/import-resolver.js.map +1 -1
- package/dist/core/move/index.d.ts +7 -3
- package/dist/core/move/index.d.ts.map +1 -1
- package/dist/core/move/index.js +7 -2
- package/dist/core/move/index.js.map +1 -1
- package/dist/core/move/move-service.d.ts +11 -60
- package/dist/core/move/move-service.d.ts.map +1 -1
- package/dist/core/move/move-service.js +16 -352
- package/dist/core/move/move-service.js.map +1 -1
- package/dist/core/move/path-calculator.d.ts +49 -0
- package/dist/core/move/path-calculator.d.ts.map +1 -0
- package/dist/core/move/path-calculator.js +158 -0
- package/dist/core/move/path-calculator.js.map +1 -0
- package/dist/core/move/path-parser.d.ts +33 -0
- package/dist/core/move/path-parser.d.ts.map +1 -0
- package/dist/core/move/path-parser.js +53 -0
- package/dist/core/move/path-parser.js.map +1 -0
- package/dist/core/move/path-utils.d.ts +70 -0
- package/dist/core/move/path-utils.d.ts.map +1 -0
- package/dist/core/move/path-utils.js +201 -0
- package/dist/core/move/path-utils.js.map +1 -0
- package/dist/core/move/types.d.ts +81 -18
- package/dist/core/move/types.d.ts.map +1 -1
- package/dist/core/move/types.js +73 -5
- package/dist/core/move/types.js.map +1 -1
- package/dist/core/move-member/change-applier.d.ts +23 -0
- package/dist/core/move-member/change-applier.d.ts.map +1 -0
- package/dist/core/move-member/change-applier.js +51 -0
- package/dist/core/move-member/change-applier.js.map +1 -0
- package/dist/core/move-member/file-change-preparer.d.ts +49 -0
- package/dist/core/move-member/file-change-preparer.d.ts.map +1 -0
- package/dist/core/move-member/file-change-preparer.js +340 -0
- package/dist/core/move-member/file-change-preparer.js.map +1 -0
- package/dist/core/move-member/index.d.ts +4 -1
- package/dist/core/move-member/index.d.ts.map +1 -1
- package/dist/core/move-member/index.js +3 -0
- package/dist/core/move-member/index.js.map +1 -1
- package/dist/core/move-member/member-extractor.d.ts +11 -0
- package/dist/core/move-member/member-extractor.d.ts.map +1 -1
- package/dist/core/move-member/member-extractor.js +114 -22
- package/dist/core/move-member/member-extractor.js.map +1 -1
- package/dist/core/move-member/move-member-service.d.ts +3 -78
- package/dist/core/move-member/move-member-service.d.ts.map +1 -1
- package/dist/core/move-member/move-member-service.js +35 -419
- package/dist/core/move-member/move-member-service.js.map +1 -1
- package/dist/core/move-member/reference-updater.d.ts +73 -0
- package/dist/core/move-member/reference-updater.d.ts.map +1 -0
- package/dist/core/move-member/reference-updater.js +286 -0
- package/dist/core/move-member/reference-updater.js.map +1 -0
- package/dist/core/move-member/types.d.ts +17 -2
- package/dist/core/move-member/types.d.ts.map +1 -1
- package/dist/core/move-member/types.js.map +1 -1
- package/dist/core/rename/reference-updater.d.ts.map +1 -1
- package/dist/core/rename/reference-updater.js +4 -1
- package/dist/core/rename/reference-updater.js.map +1 -1
- package/dist/core/rename/rename-engine.d.ts +5 -3
- package/dist/core/rename/rename-engine.d.ts.map +1 -1
- package/dist/core/rename/rename-engine.js +29 -8
- package/dist/core/rename/rename-engine.js.map +1 -1
- package/dist/core/shared/symbol-finder/symbol-finder.d.ts.map +1 -1
- package/dist/core/shared/symbol-finder/symbol-finder.js +9 -1
- package/dist/core/shared/symbol-finder/symbol-finder.js.map +1 -1
- package/dist/infrastructure/changeset/change-applicator.d.ts +1 -1
- package/dist/infrastructure/changeset/change-applicator.d.ts.map +1 -1
- package/dist/infrastructure/changeset/change-applicator.js +22 -21
- package/dist/infrastructure/changeset/change-applicator.js.map +1 -1
- package/dist/infrastructure/changeset/changeset-builder.d.ts +2 -2
- package/dist/infrastructure/changeset/changeset-builder.d.ts.map +1 -1
- package/dist/infrastructure/changeset/changeset-builder.js +11 -6
- package/dist/infrastructure/changeset/changeset-builder.js.map +1 -1
- package/dist/infrastructure/changeset/changeset-converter.d.ts +1 -1
- package/dist/infrastructure/changeset/changeset-converter.d.ts.map +1 -1
- package/dist/infrastructure/changeset/changeset-converter.js +9 -8
- package/dist/infrastructure/changeset/changeset-converter.js.map +1 -1
- package/dist/infrastructure/changeset/index.d.ts +1 -0
- package/dist/infrastructure/changeset/index.d.ts.map +1 -1
- package/dist/infrastructure/changeset/index.js +2 -0
- package/dist/infrastructure/changeset/index.js.map +1 -1
- package/dist/infrastructure/changeset/types.d.ts +41 -4
- package/dist/infrastructure/changeset/types.d.ts.map +1 -1
- package/dist/infrastructure/changeset/types.js +41 -1
- package/dist/infrastructure/changeset/types.js.map +1 -1
- package/dist/interfaces/cli/cli.d.ts.map +1 -1
- package/dist/interfaces/cli/cli.js +1 -2
- package/dist/interfaces/cli/cli.js.map +1 -1
- package/dist/interfaces/cli/commands/index.d.ts +0 -1
- package/dist/interfaces/cli/commands/index.d.ts.map +1 -1
- package/dist/interfaces/cli/commands/index.js +0 -1
- package/dist/interfaces/cli/commands/index.js.map +1 -1
- package/dist/interfaces/cli/commands/move.command.d.ts +1 -0
- package/dist/interfaces/cli/commands/move.command.d.ts.map +1 -1
- package/dist/interfaces/cli/commands/move.command.js +127 -11
- package/dist/interfaces/cli/commands/move.command.js.map +1 -1
- package/dist/interfaces/cli/commands/rename.command.d.ts.map +1 -1
- package/dist/interfaces/cli/commands/rename.command.js +114 -6
- package/dist/interfaces/cli/commands/rename.command.js.map +1 -1
- package/dist/plugins/javascript/declaration-analyzer.d.ts.map +1 -1
- package/dist/plugins/javascript/declaration-analyzer.js +9 -0
- package/dist/plugins/javascript/declaration-analyzer.js.map +1 -1
- package/dist/plugins/typescript/declaration-analyzer.d.ts.map +1 -1
- package/dist/plugins/typescript/declaration-analyzer.js +4 -0
- package/dist/plugins/typescript/declaration-analyzer.js.map +1 -1
- package/dist/plugins/typescript/reference-finder.d.ts.map +1 -1
- package/dist/plugins/typescript/reference-finder.js +11 -2
- package/dist/plugins/typescript/reference-finder.js.map +1 -1
- package/dist/plugins/typescript/symbol-extractor.d.ts.map +1 -1
- package/dist/plugins/typescript/symbol-extractor.js +6 -2
- package/dist/plugins/typescript/symbol-extractor.js.map +1 -1
- package/package.json +1 -1
- package/dist/interfaces/cli/commands/move-member.command.d.ts +0 -11
- package/dist/interfaces/cli/commands/move-member.command.d.ts.map +0 -1
- package/dist/interfaces/cli/commands/move-member.command.js +0 -140
- package/dist/interfaces/cli/commands/move-member.command.js.map +0 -1
|
@@ -28,9 +28,71 @@ export declare enum PathType {
|
|
|
28
28
|
ALIAS = "alias"
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
|
-
*
|
|
31
|
+
* 路徑衝突類型
|
|
32
32
|
*/
|
|
33
|
-
export
|
|
33
|
+
export declare enum PathConflictType {
|
|
34
|
+
FILE_EXISTS = "file_exists",
|
|
35
|
+
DIRECTORY_EXISTS = "directory_exists",
|
|
36
|
+
PERMISSION_DENIED = "permission_denied"
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 驗證錯誤類型
|
|
40
|
+
*/
|
|
41
|
+
export declare enum ValidationErrorType {
|
|
42
|
+
SOURCE_NOT_FOUND = "source_not_found",
|
|
43
|
+
DESTINATION_EXISTS = "destination_exists",
|
|
44
|
+
PERMISSION_DENIED = "permission_denied",
|
|
45
|
+
INVALID_PATH = "invalid_path"
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 驗證警告類型
|
|
49
|
+
*/
|
|
50
|
+
export declare enum ValidationWarningType {
|
|
51
|
+
MANY_FILES_AFFECTED = "many_files_affected",
|
|
52
|
+
POTENTIAL_BREAKING_CHANGE = "potential_breaking_change",
|
|
53
|
+
EXTERNAL_DEPENDENCY = "external_dependency"
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* 移動錯誤類型
|
|
57
|
+
*/
|
|
58
|
+
export declare enum MoveErrorType {
|
|
59
|
+
FILE_SYSTEM = "file_system",
|
|
60
|
+
IMPORT_UPDATE = "import_update",
|
|
61
|
+
VALIDATION = "validation",
|
|
62
|
+
ROLLBACK = "rollback"
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 回滾操作類型
|
|
66
|
+
*/
|
|
67
|
+
export declare enum RollbackOperationType {
|
|
68
|
+
MOVE_FILE = "move_file",
|
|
69
|
+
RESTORE_CONTENT = "restore_content",
|
|
70
|
+
REVERT_IMPORT = "revert_import"
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Import 語句類型
|
|
74
|
+
*/
|
|
75
|
+
export declare enum ImportStatementType {
|
|
76
|
+
IMPORT = "import",
|
|
77
|
+
REQUIRE = "require",
|
|
78
|
+
DYNAMIC_IMPORT = "dynamic_import",
|
|
79
|
+
EXPORT = "export"
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* 移動進度階段
|
|
83
|
+
*/
|
|
84
|
+
export declare enum MoveStage {
|
|
85
|
+
VALIDATION = "validation",
|
|
86
|
+
PREPARATION = "preparation",
|
|
87
|
+
MOVING = "moving",
|
|
88
|
+
UPDATING_IMPORTS = "updating_imports",
|
|
89
|
+
CLEANUP = "cleanup"
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* 內部移動操作定義 - 給內部引擎使用
|
|
93
|
+
* 包含完整的操作資訊(id、timestamp 等)
|
|
94
|
+
*/
|
|
95
|
+
export interface InternalMoveOperation {
|
|
34
96
|
readonly id: string;
|
|
35
97
|
readonly type: MoveOperationType;
|
|
36
98
|
readonly source: string;
|
|
@@ -53,7 +115,7 @@ export interface BatchMoveResult {
|
|
|
53
115
|
* 移動預覽
|
|
54
116
|
*/
|
|
55
117
|
export interface MovePreview {
|
|
56
|
-
readonly operation:
|
|
118
|
+
readonly operation: InternalMoveOperation;
|
|
57
119
|
readonly impact: MoveImpact;
|
|
58
120
|
readonly conflicts: readonly PathConflict[];
|
|
59
121
|
readonly affectedFiles: readonly string[];
|
|
@@ -72,7 +134,7 @@ export interface MoveImpact {
|
|
|
72
134
|
* 路徑衝突
|
|
73
135
|
*/
|
|
74
136
|
export interface PathConflict {
|
|
75
|
-
readonly type:
|
|
137
|
+
readonly type: PathConflictType;
|
|
76
138
|
readonly path: string;
|
|
77
139
|
readonly description: string;
|
|
78
140
|
}
|
|
@@ -108,7 +170,7 @@ export interface ValidationResult {
|
|
|
108
170
|
* 驗證錯誤
|
|
109
171
|
*/
|
|
110
172
|
export interface ValidationError {
|
|
111
|
-
readonly type:
|
|
173
|
+
readonly type: ValidationErrorType;
|
|
112
174
|
readonly message: string;
|
|
113
175
|
readonly path?: string;
|
|
114
176
|
}
|
|
@@ -116,7 +178,7 @@ export interface ValidationError {
|
|
|
116
178
|
* 驗證警告
|
|
117
179
|
*/
|
|
118
180
|
export interface ValidationWarning {
|
|
119
|
-
readonly type:
|
|
181
|
+
readonly type: ValidationWarningType;
|
|
120
182
|
readonly message: string;
|
|
121
183
|
readonly details?: unknown;
|
|
122
184
|
}
|
|
@@ -124,7 +186,7 @@ export interface ValidationWarning {
|
|
|
124
186
|
* 移動錯誤
|
|
125
187
|
*/
|
|
126
188
|
export interface MoveError {
|
|
127
|
-
readonly type:
|
|
189
|
+
readonly type: MoveErrorType;
|
|
128
190
|
readonly message: string;
|
|
129
191
|
readonly filePath?: string;
|
|
130
192
|
readonly originalError?: Error;
|
|
@@ -141,7 +203,7 @@ export interface RollbackInfo {
|
|
|
141
203
|
* 回滾操作
|
|
142
204
|
*/
|
|
143
205
|
export interface RollbackOperation {
|
|
144
|
-
readonly type:
|
|
206
|
+
readonly type: RollbackOperationType;
|
|
145
207
|
readonly source: string;
|
|
146
208
|
readonly destination: string;
|
|
147
209
|
readonly originalContent?: string;
|
|
@@ -150,7 +212,7 @@ export interface RollbackOperation {
|
|
|
150
212
|
* Import 語句的解析結果
|
|
151
213
|
*/
|
|
152
214
|
export interface ImportStatement {
|
|
153
|
-
readonly type:
|
|
215
|
+
readonly type: ImportStatementType;
|
|
154
216
|
readonly path: string;
|
|
155
217
|
readonly pathType: PathType;
|
|
156
218
|
readonly position: Position;
|
|
@@ -183,7 +245,7 @@ export interface MoveEngineConfig {
|
|
|
183
245
|
*/
|
|
184
246
|
export interface MoveProgress {
|
|
185
247
|
readonly operationId: string;
|
|
186
|
-
readonly stage:
|
|
248
|
+
readonly stage: MoveStage;
|
|
187
249
|
readonly progress: number;
|
|
188
250
|
readonly currentFile?: string;
|
|
189
251
|
readonly message?: string;
|
|
@@ -208,9 +270,10 @@ export interface ImportResolverConfig {
|
|
|
208
270
|
readonly includeNodeModules?: boolean;
|
|
209
271
|
}
|
|
210
272
|
/**
|
|
211
|
-
*
|
|
273
|
+
* 移動操作輸入 - 給 MoveService 公開方法使用
|
|
274
|
+
* 只包含必要的來源/目標路徑
|
|
212
275
|
*/
|
|
213
|
-
export interface
|
|
276
|
+
export interface MoveInput {
|
|
214
277
|
readonly source: string;
|
|
215
278
|
readonly target: string;
|
|
216
279
|
readonly updateImports?: boolean;
|
|
@@ -244,21 +307,21 @@ export interface PathUpdate {
|
|
|
244
307
|
readonly newImport: string;
|
|
245
308
|
}
|
|
246
309
|
/**
|
|
247
|
-
*
|
|
310
|
+
* 建立 InternalMoveOperation 的工廠函式
|
|
248
311
|
*/
|
|
249
|
-
export declare function
|
|
312
|
+
export declare function createInternalMoveOperation(type: MoveOperationType, source: string, destination: string): InternalMoveOperation;
|
|
250
313
|
/**
|
|
251
314
|
* 建立 ValidationError 的工廠函式
|
|
252
315
|
*/
|
|
253
|
-
export declare function createValidationError(type:
|
|
316
|
+
export declare function createValidationError(type: ValidationErrorType, message: string, path?: string): ValidationError;
|
|
254
317
|
/**
|
|
255
318
|
* 建立 MoveError 的工廠函式
|
|
256
319
|
*/
|
|
257
|
-
export declare function createMoveError(type:
|
|
320
|
+
export declare function createMoveError(type: MoveErrorType, message: string, filePath?: string, originalError?: Error): MoveError;
|
|
258
321
|
/**
|
|
259
|
-
* 型別守衛 -
|
|
322
|
+
* 型別守衛 - 檢查是否為 InternalMoveOperation
|
|
260
323
|
*/
|
|
261
|
-
export declare function
|
|
324
|
+
export declare function isInternalMoveOperation(value: unknown): value is InternalMoveOperation;
|
|
262
325
|
/**
|
|
263
326
|
* 型別守衛 - 檢查是否為 ImportStatement
|
|
264
327
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/move/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAExD;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,IAAI,SAAS;IACb,SAAS,cAAc;CACxB;AAED;;GAEG;AACH,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,WAAW,gBAAgB;CAC5B;AAED;;GAEG;AACH,oBAAY,QAAQ;IAClB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/move/types.ts"],"names":[],"mappings":"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"}
|
package/dist/core/move/types.js
CHANGED
|
@@ -30,9 +30,77 @@ export var PathType;
|
|
|
30
30
|
PathType["ALIAS"] = "alias";
|
|
31
31
|
})(PathType || (PathType = {}));
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
33
|
+
* 路徑衝突類型
|
|
34
34
|
*/
|
|
35
|
-
export
|
|
35
|
+
export var PathConflictType;
|
|
36
|
+
(function (PathConflictType) {
|
|
37
|
+
PathConflictType["FILE_EXISTS"] = "file_exists";
|
|
38
|
+
PathConflictType["DIRECTORY_EXISTS"] = "directory_exists";
|
|
39
|
+
PathConflictType["PERMISSION_DENIED"] = "permission_denied";
|
|
40
|
+
})(PathConflictType || (PathConflictType = {}));
|
|
41
|
+
/**
|
|
42
|
+
* 驗證錯誤類型
|
|
43
|
+
*/
|
|
44
|
+
export var ValidationErrorType;
|
|
45
|
+
(function (ValidationErrorType) {
|
|
46
|
+
ValidationErrorType["SOURCE_NOT_FOUND"] = "source_not_found";
|
|
47
|
+
ValidationErrorType["DESTINATION_EXISTS"] = "destination_exists";
|
|
48
|
+
ValidationErrorType["PERMISSION_DENIED"] = "permission_denied";
|
|
49
|
+
ValidationErrorType["INVALID_PATH"] = "invalid_path";
|
|
50
|
+
})(ValidationErrorType || (ValidationErrorType = {}));
|
|
51
|
+
/**
|
|
52
|
+
* 驗證警告類型
|
|
53
|
+
*/
|
|
54
|
+
export var ValidationWarningType;
|
|
55
|
+
(function (ValidationWarningType) {
|
|
56
|
+
ValidationWarningType["MANY_FILES_AFFECTED"] = "many_files_affected";
|
|
57
|
+
ValidationWarningType["POTENTIAL_BREAKING_CHANGE"] = "potential_breaking_change";
|
|
58
|
+
ValidationWarningType["EXTERNAL_DEPENDENCY"] = "external_dependency";
|
|
59
|
+
})(ValidationWarningType || (ValidationWarningType = {}));
|
|
60
|
+
/**
|
|
61
|
+
* 移動錯誤類型
|
|
62
|
+
*/
|
|
63
|
+
export var MoveErrorType;
|
|
64
|
+
(function (MoveErrorType) {
|
|
65
|
+
MoveErrorType["FILE_SYSTEM"] = "file_system";
|
|
66
|
+
MoveErrorType["IMPORT_UPDATE"] = "import_update";
|
|
67
|
+
MoveErrorType["VALIDATION"] = "validation";
|
|
68
|
+
MoveErrorType["ROLLBACK"] = "rollback";
|
|
69
|
+
})(MoveErrorType || (MoveErrorType = {}));
|
|
70
|
+
/**
|
|
71
|
+
* 回滾操作類型
|
|
72
|
+
*/
|
|
73
|
+
export var RollbackOperationType;
|
|
74
|
+
(function (RollbackOperationType) {
|
|
75
|
+
RollbackOperationType["MOVE_FILE"] = "move_file";
|
|
76
|
+
RollbackOperationType["RESTORE_CONTENT"] = "restore_content";
|
|
77
|
+
RollbackOperationType["REVERT_IMPORT"] = "revert_import";
|
|
78
|
+
})(RollbackOperationType || (RollbackOperationType = {}));
|
|
79
|
+
/**
|
|
80
|
+
* Import 語句類型
|
|
81
|
+
*/
|
|
82
|
+
export var ImportStatementType;
|
|
83
|
+
(function (ImportStatementType) {
|
|
84
|
+
ImportStatementType["IMPORT"] = "import";
|
|
85
|
+
ImportStatementType["REQUIRE"] = "require";
|
|
86
|
+
ImportStatementType["DYNAMIC_IMPORT"] = "dynamic_import";
|
|
87
|
+
ImportStatementType["EXPORT"] = "export";
|
|
88
|
+
})(ImportStatementType || (ImportStatementType = {}));
|
|
89
|
+
/**
|
|
90
|
+
* 移動進度階段
|
|
91
|
+
*/
|
|
92
|
+
export var MoveStage;
|
|
93
|
+
(function (MoveStage) {
|
|
94
|
+
MoveStage["VALIDATION"] = "validation";
|
|
95
|
+
MoveStage["PREPARATION"] = "preparation";
|
|
96
|
+
MoveStage["MOVING"] = "moving";
|
|
97
|
+
MoveStage["UPDATING_IMPORTS"] = "updating_imports";
|
|
98
|
+
MoveStage["CLEANUP"] = "cleanup";
|
|
99
|
+
})(MoveStage || (MoveStage = {}));
|
|
100
|
+
/**
|
|
101
|
+
* 建立 InternalMoveOperation 的工廠函式
|
|
102
|
+
*/
|
|
103
|
+
export function createInternalMoveOperation(type, source, destination) {
|
|
36
104
|
return {
|
|
37
105
|
id: generateId(),
|
|
38
106
|
type,
|
|
@@ -69,9 +137,9 @@ function generateId() {
|
|
|
69
137
|
return `move_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
70
138
|
}
|
|
71
139
|
/**
|
|
72
|
-
* 型別守衛 -
|
|
140
|
+
* 型別守衛 - 檢查是否為 InternalMoveOperation
|
|
73
141
|
*/
|
|
74
|
-
export function
|
|
142
|
+
export function isInternalMoveOperation(value) {
|
|
75
143
|
if (!value || typeof value !== 'object') {
|
|
76
144
|
return false;
|
|
77
145
|
}
|
|
@@ -90,7 +158,7 @@ export function isImportStatement(value) {
|
|
|
90
158
|
return false;
|
|
91
159
|
}
|
|
92
160
|
const obj = value;
|
|
93
|
-
return (
|
|
161
|
+
return (Object.values(ImportStatementType).includes(obj.type) &&
|
|
94
162
|
typeof obj.path === 'string' &&
|
|
95
163
|
Object.values(PathType).includes(obj.pathType) &&
|
|
96
164
|
typeof obj.position === 'object' &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/move/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,CAAN,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,kCAAa,CAAA;IACb,4CAAuB,CAAA;AACzB,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,QAG5B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,yCAA2B,CAAA;IAC3B,qCAAuB,CAAA;IACvB,+BAAiB,CAAA;IACjB,yCAA2B,CAAA;AAC7B,CAAC,EANW,UAAU,KAAV,UAAU,QAMrB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,2BAAe,CAAA;AACjB,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/move/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Change Applier
|
|
3
|
+
* 負責執行變更(寫入檔案)
|
|
4
|
+
*/
|
|
5
|
+
import type { IFileSystem } from '../../infrastructure/storage/file-system.interface.js';
|
|
6
|
+
import type { ReferenceUpdate, FileChange, TargetFileChange } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Change Applier
|
|
9
|
+
* 負責將準備好的變更寫入檔案系統
|
|
10
|
+
*/
|
|
11
|
+
export declare class ChangeApplier {
|
|
12
|
+
private readonly fileSystem;
|
|
13
|
+
constructor(fileSystem: IFileSystem);
|
|
14
|
+
/**
|
|
15
|
+
* 執行變更
|
|
16
|
+
*/
|
|
17
|
+
applyChanges(sourceFileChange: FileChange, targetFileChange: TargetFileChange, referenceUpdates: readonly ReferenceUpdate[]): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* 讀取檔案內容
|
|
20
|
+
*/
|
|
21
|
+
private readFile;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=change-applier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-applier.d.ts","sourceRoot":"","sources":["../../../src/core/move-member/change-applier.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEhF;;;GAGG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,WAAW;IAEpD;;OAEG;IACG,YAAY,CAChB,gBAAgB,EAAE,UAAU,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,SAAS,eAAe,EAAE,GAC3C,OAAO,CAAC,IAAI,CAAC;IAuBhB;;OAEG;YACW,QAAQ;CAQvB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Change Applier
|
|
3
|
+
* 負責執行變更(寫入檔案)
|
|
4
|
+
*/
|
|
5
|
+
import * as path from 'path';
|
|
6
|
+
/**
|
|
7
|
+
* Change Applier
|
|
8
|
+
* 負責將準備好的變更寫入檔案系統
|
|
9
|
+
*/
|
|
10
|
+
export class ChangeApplier {
|
|
11
|
+
fileSystem;
|
|
12
|
+
constructor(fileSystem) {
|
|
13
|
+
this.fileSystem = fileSystem;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* 執行變更
|
|
17
|
+
*/
|
|
18
|
+
async applyChanges(sourceFileChange, targetFileChange, referenceUpdates) {
|
|
19
|
+
// 確保目標目錄存在
|
|
20
|
+
if (targetFileChange.isNewFile) {
|
|
21
|
+
const targetDir = path.dirname(targetFileChange.filePath);
|
|
22
|
+
await this.fileSystem.createDirectory(targetDir, true);
|
|
23
|
+
}
|
|
24
|
+
// 寫入來源檔案
|
|
25
|
+
await this.fileSystem.writeFile(sourceFileChange.filePath, sourceFileChange.newCode);
|
|
26
|
+
// 寫入目標檔案
|
|
27
|
+
await this.fileSystem.writeFile(targetFileChange.filePath, targetFileChange.newCode);
|
|
28
|
+
// 更新引用
|
|
29
|
+
for (const update of referenceUpdates) {
|
|
30
|
+
const content = await this.readFile(update.filePath);
|
|
31
|
+
if (!content) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
const newContent = content.replace(update.originalImport, update.newImport);
|
|
35
|
+
await this.fileSystem.writeFile(update.filePath, newContent);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 讀取檔案內容
|
|
40
|
+
*/
|
|
41
|
+
async readFile(filePath) {
|
|
42
|
+
try {
|
|
43
|
+
const content = await this.fileSystem.readFile(filePath, 'utf-8');
|
|
44
|
+
return typeof content === 'string' ? content : content.toString('utf-8');
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=change-applier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-applier.js","sourceRoot":"","sources":["../../../src/core/move-member/change-applier.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAI7B;;;GAGG;AACH,MAAM,OAAO,aAAa;IACK;IAA7B,YAA6B,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;IAAG,CAAC;IAExD;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,gBAA4B,EAC5B,gBAAkC,EAClC,gBAA4C;QAE5C,WAAW;QACX,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC;QAED,SAAS;QACT,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAErF,SAAS;QACT,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAErF,OAAO;QACP,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAA,SAAS;YAAA,CAAC;YAEzB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5E,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,QAAQ,CAAC,QAAgB;QACrC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClE,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Change Preparer
|
|
3
|
+
* 負責準備來源檔案和目標檔案的變更
|
|
4
|
+
*/
|
|
5
|
+
import type { IFileSystem } from '../../infrastructure/storage/file-system.interface.js';
|
|
6
|
+
import type { MemberDefinition, MoveMemberOptions, FileChange, TargetFileChange } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* File Change Preparer
|
|
9
|
+
* 負責準備來源檔案和目標檔案的程式碼變更
|
|
10
|
+
*/
|
|
11
|
+
export declare class FileChangePreparer {
|
|
12
|
+
private readonly fileSystem;
|
|
13
|
+
constructor(fileSystem: IFileSystem);
|
|
14
|
+
/**
|
|
15
|
+
* 準備來源檔案變更
|
|
16
|
+
*/
|
|
17
|
+
prepareSourceFileChange(options: MoveMemberOptions, member: MemberDefinition): Promise<FileChange>;
|
|
18
|
+
/**
|
|
19
|
+
* 準備目標檔案變更
|
|
20
|
+
* 自動判斷目標檔案是否存在:存在則插入,不存在則創建新檔案
|
|
21
|
+
*/
|
|
22
|
+
prepareTargetFileChange(options: MoveMemberOptions, member: MemberDefinition): Promise<TargetFileChange>;
|
|
23
|
+
/**
|
|
24
|
+
* 找到 import 插入位置(在最後一個 import 之後)
|
|
25
|
+
*/
|
|
26
|
+
private findImportInsertPosition;
|
|
27
|
+
/**
|
|
28
|
+
* 生成成員依賴的 import
|
|
29
|
+
*/
|
|
30
|
+
private generateDependencyImports;
|
|
31
|
+
/**
|
|
32
|
+
* 分析來源檔案的符號(本地 export 和 import)
|
|
33
|
+
*/
|
|
34
|
+
private analyzeSourceSymbols;
|
|
35
|
+
/**
|
|
36
|
+
* 找到類別內的插入位置
|
|
37
|
+
* 使用正則表達式嚴格匹配類別定義,避免匹配註解中的類別名稱
|
|
38
|
+
*/
|
|
39
|
+
private findClassInsertPosition;
|
|
40
|
+
/**
|
|
41
|
+
* 計算相對路徑
|
|
42
|
+
*/
|
|
43
|
+
private calculateRelativePath;
|
|
44
|
+
/**
|
|
45
|
+
* 讀取檔案內容
|
|
46
|
+
*/
|
|
47
|
+
private readFile;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=file-change-preparer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-change-preparer.d.ts","sourceRoot":"","sources":["../../../src/core/move-member/file-change-preparer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA8BpG;;;GAGG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,WAAW;IAEpD;;OAEG;IACG,uBAAuB,CAC3B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,UAAU,CAAC;IAqCtB;;;OAGG;IACG,uBAAuB,CAC3B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,gBAAgB,CAAC;IAsF5B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAehC;;OAEG;YACW,yBAAyB;IA6DvC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoF5B;;;OAGG;YACW,uBAAuB;IAmCrC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAe7B;;OAEG;YACW,QAAQ;CAQvB"}
|