agent-ide 0.5.1 → 0.7.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 (149) hide show
  1. package/dist/core/change-signature/change-signature-service.d.ts.map +1 -1
  2. package/dist/core/change-signature/change-signature-service.js +21 -14
  3. package/dist/core/change-signature/change-signature-service.js.map +1 -1
  4. package/dist/core/change-signature/signature-parser.d.ts +0 -16
  5. package/dist/core/change-signature/signature-parser.d.ts.map +1 -1
  6. package/dist/core/change-signature/signature-parser.js +28 -111
  7. package/dist/core/change-signature/signature-parser.js.map +1 -1
  8. package/dist/core/change-signature/types.d.ts +2 -0
  9. package/dist/core/change-signature/types.d.ts.map +1 -1
  10. package/dist/core/change-signature/types.js +2 -0
  11. package/dist/core/change-signature/types.js.map +1 -1
  12. package/dist/core/dead-code/dead-code-detector.d.ts +63 -0
  13. package/dist/core/dead-code/dead-code-detector.d.ts.map +1 -0
  14. package/dist/core/dead-code/dead-code-detector.js +256 -0
  15. package/dist/core/dead-code/dead-code-detector.js.map +1 -0
  16. package/dist/core/dead-code/dead-code-remover.d.ts +133 -0
  17. package/dist/core/dead-code/dead-code-remover.d.ts.map +1 -0
  18. package/dist/core/dead-code/dead-code-remover.js +803 -0
  19. package/dist/core/dead-code/dead-code-remover.js.map +1 -0
  20. package/dist/core/dead-code/index.d.ts +9 -0
  21. package/dist/core/dead-code/index.d.ts.map +1 -0
  22. package/dist/core/dead-code/index.js +8 -0
  23. package/dist/core/dead-code/index.js.map +1 -0
  24. package/dist/core/dead-code/types.d.ts +185 -0
  25. package/dist/core/dead-code/types.d.ts.map +1 -0
  26. package/dist/core/dead-code/types.js +53 -0
  27. package/dist/core/dead-code/types.js.map +1 -0
  28. package/dist/core/dependency/dependency-analyzer.d.ts.map +1 -1
  29. package/dist/core/dependency/dependency-analyzer.js +2 -15
  30. package/dist/core/dependency/dependency-analyzer.js.map +1 -1
  31. package/dist/core/indexing/index-engine.d.ts.map +1 -1
  32. package/dist/core/indexing/index-engine.js +0 -12
  33. package/dist/core/indexing/index-engine.js.map +1 -1
  34. package/dist/core/indexing/types.d.ts +1 -1
  35. package/dist/core/indexing/types.js +1 -1
  36. package/dist/core/indexing/types.js.map +1 -1
  37. package/dist/core/move-file/import-resolver.d.ts +1 -1
  38. package/dist/core/move-file/import-resolver.d.ts.map +1 -1
  39. package/dist/core/move-file/import-resolver.js +1 -9
  40. package/dist/core/move-file/import-resolver.js.map +1 -1
  41. package/dist/core/move-file/move-service.d.ts +8 -0
  42. package/dist/core/move-file/move-service.d.ts.map +1 -1
  43. package/dist/core/move-file/move-service.js +102 -21
  44. package/dist/core/move-file/move-service.js.map +1 -1
  45. package/dist/core/move-member/member-extractor.d.ts +0 -8
  46. package/dist/core/move-member/member-extractor.d.ts.map +1 -1
  47. package/dist/core/move-member/member-extractor.js +0 -49
  48. package/dist/core/move-member/member-extractor.js.map +1 -1
  49. package/dist/core/move-member/move-member-service.js +1 -1
  50. package/dist/core/move-member/move-member-service.js.map +1 -1
  51. package/dist/core/shared/symbol-finder.d.ts +4 -0
  52. package/dist/core/shared/symbol-finder.d.ts.map +1 -1
  53. package/dist/core/shared/symbol-finder.js +41 -0
  54. package/dist/core/shared/symbol-finder.js.map +1 -1
  55. package/dist/core/snapshot/index.d.ts +2 -0
  56. package/dist/core/snapshot/index.d.ts.map +1 -1
  57. package/dist/core/snapshot/index.js +1 -0
  58. package/dist/core/snapshot/index.js.map +1 -1
  59. package/dist/core/snapshot/snapshot-cache.d.ts +103 -0
  60. package/dist/core/snapshot/snapshot-cache.d.ts.map +1 -0
  61. package/dist/core/snapshot/snapshot-cache.js +249 -0
  62. package/dist/core/snapshot/snapshot-cache.js.map +1 -0
  63. package/dist/core/snapshot/snapshot-generator.d.ts +12 -0
  64. package/dist/core/snapshot/snapshot-generator.d.ts.map +1 -1
  65. package/dist/core/snapshot/snapshot-generator.js +61 -3
  66. package/dist/core/snapshot/snapshot-generator.js.map +1 -1
  67. package/dist/infrastructure/formatters/index.d.ts +1 -1
  68. package/dist/infrastructure/formatters/index.d.ts.map +1 -1
  69. package/dist/infrastructure/formatters/index.js.map +1 -1
  70. package/dist/infrastructure/formatters/preview-converter.d.ts +62 -0
  71. package/dist/infrastructure/formatters/preview-converter.d.ts.map +1 -1
  72. package/dist/infrastructure/formatters/preview-converter.js +82 -0
  73. package/dist/infrastructure/formatters/preview-converter.js.map +1 -1
  74. package/dist/infrastructure/formatters/query-formatter.d.ts +16 -0
  75. package/dist/infrastructure/formatters/query-formatter.d.ts.map +1 -1
  76. package/dist/infrastructure/formatters/query-formatter.js +155 -3
  77. package/dist/infrastructure/formatters/query-formatter.js.map +1 -1
  78. package/dist/infrastructure/formatters/query-types.d.ts +73 -2
  79. package/dist/infrastructure/formatters/query-types.d.ts.map +1 -1
  80. package/dist/infrastructure/formatters/types.d.ts +2 -1
  81. package/dist/infrastructure/formatters/types.d.ts.map +1 -1
  82. package/dist/infrastructure/formatters/types.js +1 -0
  83. package/dist/infrastructure/formatters/types.js.map +1 -1
  84. package/dist/interfaces/cli/cli.d.ts.map +1 -1
  85. package/dist/interfaces/cli/cli.js +2 -29
  86. package/dist/interfaces/cli/cli.js.map +1 -1
  87. package/dist/interfaces/cli/commands/change-signature.command.js +3 -3
  88. package/dist/interfaces/cli/commands/change-signature.command.js.map +1 -1
  89. package/dist/interfaces/cli/commands/deadcode.command.d.ts +11 -0
  90. package/dist/interfaces/cli/commands/deadcode.command.d.ts.map +1 -0
  91. package/dist/interfaces/cli/commands/deadcode.command.js +164 -0
  92. package/dist/interfaces/cli/commands/deadcode.command.js.map +1 -0
  93. package/dist/interfaces/cli/commands/index.d.ts +1 -0
  94. package/dist/interfaces/cli/commands/index.d.ts.map +1 -1
  95. package/dist/interfaces/cli/commands/index.js +1 -0
  96. package/dist/interfaces/cli/commands/index.js.map +1 -1
  97. package/dist/interfaces/cli/commands/move.command.js +1 -1
  98. package/dist/interfaces/cli/commands/move.command.js.map +1 -1
  99. package/dist/interfaces/cli/commands/rename.command.js +2 -3
  100. package/dist/interfaces/cli/commands/rename.command.js.map +1 -1
  101. package/dist/interfaces/cli/commands/snapshot.command.d.ts.map +1 -1
  102. package/dist/interfaces/cli/commands/snapshot.command.js +20 -0
  103. package/dist/interfaces/cli/commands/snapshot.command.js.map +1 -1
  104. package/package.json +10 -12
  105. package/dist/plugins/python/dependency-analyzer.d.ts +0 -86
  106. package/dist/plugins/python/dependency-analyzer.d.ts.map +0 -1
  107. package/dist/plugins/python/dependency-analyzer.js +0 -252
  108. package/dist/plugins/python/dependency-analyzer.js.map +0 -1
  109. package/dist/plugins/python/index.d.ts +0 -9
  110. package/dist/plugins/python/index.d.ts.map +0 -1
  111. package/dist/plugins/python/index.js +0 -14
  112. package/dist/plugins/python/index.js.map +0 -1
  113. package/dist/plugins/python/parser.d.ts +0 -117
  114. package/dist/plugins/python/parser.d.ts.map +0 -1
  115. package/dist/plugins/python/parser.js +0 -414
  116. package/dist/plugins/python/parser.js.map +0 -1
  117. package/dist/plugins/python/symbol-extractor.d.ts +0 -108
  118. package/dist/plugins/python/symbol-extractor.d.ts.map +0 -1
  119. package/dist/plugins/python/symbol-extractor.js +0 -389
  120. package/dist/plugins/python/symbol-extractor.js.map +0 -1
  121. package/dist/plugins/python/tree-sitter-bridge.d.ts +0 -57
  122. package/dist/plugins/python/tree-sitter-bridge.d.ts.map +0 -1
  123. package/dist/plugins/python/tree-sitter-bridge.js +0 -269
  124. package/dist/plugins/python/tree-sitter-bridge.js.map +0 -1
  125. package/dist/plugins/python/types.d.ts +0 -191
  126. package/dist/plugins/python/types.d.ts.map +0 -1
  127. package/dist/plugins/python/types.js +0 -279
  128. package/dist/plugins/python/types.js.map +0 -1
  129. package/dist/plugins/swift/dependency-analyzer.d.ts +0 -33
  130. package/dist/plugins/swift/dependency-analyzer.d.ts.map +0 -1
  131. package/dist/plugins/swift/dependency-analyzer.js +0 -95
  132. package/dist/plugins/swift/dependency-analyzer.js.map +0 -1
  133. package/dist/plugins/swift/index.d.ts +0 -14
  134. package/dist/plugins/swift/index.d.ts.map +0 -1
  135. package/dist/plugins/swift/index.js +0 -19
  136. package/dist/plugins/swift/index.js.map +0 -1
  137. package/dist/plugins/swift/parser.d.ts +0 -164
  138. package/dist/plugins/swift/parser.d.ts.map +0 -1
  139. package/dist/plugins/swift/parser.js +0 -688
  140. package/dist/plugins/swift/parser.js.map +0 -1
  141. package/dist/plugins/swift/swift-bridge/swift-parser +0 -0
  142. package/dist/plugins/swift/symbol-extractor.d.ts +0 -46
  143. package/dist/plugins/swift/symbol-extractor.d.ts.map +0 -1
  144. package/dist/plugins/swift/symbol-extractor.js +0 -187
  145. package/dist/plugins/swift/symbol-extractor.js.map +0 -1
  146. package/dist/plugins/swift/types.d.ts +0 -149
  147. package/dist/plugins/swift/types.d.ts.map +0 -1
  148. package/dist/plugins/swift/types.js +0 -251
  149. package/dist/plugins/swift/types.js.map +0 -1
@@ -1,279 +0,0 @@
1
- /**
2
- * Python Parser 特定型別定義
3
- */
4
- import { SymbolType } from '../../shared/types/index.js';
5
- /**
6
- * Python AST 節點類型(對應 tree-sitter-python)
7
- */
8
- export var PythonNodeKind;
9
- (function (PythonNodeKind) {
10
- // 模組和結構
11
- PythonNodeKind["Module"] = "module";
12
- PythonNodeKind["ClassDefinition"] = "class_definition";
13
- PythonNodeKind["FunctionDefinition"] = "function_definition";
14
- PythonNodeKind["AsyncFunctionDefinition"] = "async_function_definition";
15
- PythonNodeKind["DecoratedDefinition"] = "decorated_definition";
16
- PythonNodeKind["Decorator"] = "decorator";
17
- // 語句
18
- PythonNodeKind["ImportStatement"] = "import_statement";
19
- PythonNodeKind["ImportFromStatement"] = "import_from_statement";
20
- PythonNodeKind["Assignment"] = "assignment";
21
- PythonNodeKind["AugmentedAssignment"] = "augmented_assignment";
22
- PythonNodeKind["AnnotatedAssignment"] = "annotated_assignment";
23
- PythonNodeKind["GlobalStatement"] = "global_statement";
24
- PythonNodeKind["NonlocalStatement"] = "nonlocal_statement";
25
- PythonNodeKind["ExpressionStatement"] = "expression_statement";
26
- PythonNodeKind["ReturnStatement"] = "return_statement";
27
- PythonNodeKind["PassStatement"] = "pass_statement";
28
- PythonNodeKind["BreakStatement"] = "break_statement";
29
- PythonNodeKind["ContinueStatement"] = "continue_statement";
30
- PythonNodeKind["RaiseStatement"] = "raise_statement";
31
- PythonNodeKind["AssertStatement"] = "assert_statement";
32
- PythonNodeKind["DeleteStatement"] = "delete_statement";
33
- PythonNodeKind["PrintStatement"] = "print_statement";
34
- // 控制流
35
- PythonNodeKind["IfStatement"] = "if_statement";
36
- PythonNodeKind["ElifClause"] = "elif_clause";
37
- PythonNodeKind["ElseClause"] = "else_clause";
38
- PythonNodeKind["ForStatement"] = "for_statement";
39
- PythonNodeKind["WhileStatement"] = "while_statement";
40
- PythonNodeKind["TryStatement"] = "try_statement";
41
- PythonNodeKind["ExceptClause"] = "except_clause";
42
- PythonNodeKind["FinallyClause"] = "finally_clause";
43
- PythonNodeKind["WithStatement"] = "with_statement";
44
- PythonNodeKind["AsyncForStatement"] = "async_for_statement";
45
- PythonNodeKind["AsyncWithStatement"] = "async_with_statement";
46
- // Python 3.10+ match-case
47
- PythonNodeKind["MatchStatement"] = "match_statement";
48
- PythonNodeKind["CaseClause"] = "case_clause";
49
- PythonNodeKind["CasePattern"] = "case_pattern";
50
- // 表達式
51
- PythonNodeKind["BinaryOperator"] = "binary_operator";
52
- PythonNodeKind["UnaryOperator"] = "unary_operator";
53
- PythonNodeKind["BooleanOperator"] = "boolean_operator";
54
- PythonNodeKind["ComparisonOperator"] = "comparison_operator";
55
- PythonNodeKind["ConditionalExpression"] = "conditional_expression";
56
- PythonNodeKind["LambdaExpression"] = "lambda";
57
- PythonNodeKind["Call"] = "call";
58
- PythonNodeKind["Attribute"] = "attribute";
59
- PythonNodeKind["Subscript"] = "subscript";
60
- PythonNodeKind["Slice"] = "slice";
61
- // 容器
62
- PythonNodeKind["List"] = "list";
63
- PythonNodeKind["Dictionary"] = "dictionary";
64
- PythonNodeKind["Set"] = "set";
65
- PythonNodeKind["Tuple"] = "tuple";
66
- PythonNodeKind["ListComprehension"] = "list_comprehension";
67
- PythonNodeKind["DictionaryComprehension"] = "dictionary_comprehension";
68
- PythonNodeKind["SetComprehension"] = "set_comprehension";
69
- PythonNodeKind["GeneratorExpression"] = "generator_expression";
70
- // 基本元素
71
- PythonNodeKind["Identifier"] = "identifier";
72
- PythonNodeKind["Integer"] = "integer";
73
- PythonNodeKind["Float"] = "float";
74
- PythonNodeKind["String"] = "string";
75
- PythonNodeKind["ConcatenatedString"] = "concatenated_string";
76
- PythonNodeKind["True"] = "true";
77
- PythonNodeKind["False"] = "false";
78
- PythonNodeKind["None"] = "none";
79
- PythonNodeKind["Comment"] = "comment";
80
- // 參數和型別
81
- PythonNodeKind["Parameters"] = "parameters";
82
- PythonNodeKind["Parameter"] = "parameter";
83
- PythonNodeKind["DefaultParameter"] = "default_parameter";
84
- PythonNodeKind["TypedParameter"] = "typed_parameter";
85
- PythonNodeKind["TypedDefaultParameter"] = "typed_default_parameter";
86
- PythonNodeKind["ListSplatPattern"] = "list_splat_pattern";
87
- PythonNodeKind["DictionarySplatPattern"] = "dictionary_splat_pattern";
88
- PythonNodeKind["KeywordArgument"] = "keyword_argument";
89
- PythonNodeKind["Type"] = "type";
90
- // 區塊
91
- PythonNodeKind["Block"] = "block";
92
- PythonNodeKind["ArgumentList"] = "argument_list";
93
- // Import 相關
94
- PythonNodeKind["DottedName"] = "dotted_name";
95
- PythonNodeKind["AliasedImport"] = "aliased_import";
96
- PythonNodeKind["WildcardImport"] = "wildcard_import";
97
- PythonNodeKind["RelativeImport"] = "relative_import";
98
- PythonNodeKind["ImportPrefix"] = "import_prefix";
99
- })(PythonNodeKind || (PythonNodeKind = {}));
100
- /**
101
- * Python 符號類型映射
102
- */
103
- export const PYTHON_SYMBOL_TYPE_MAP = {
104
- [PythonNodeKind.ClassDefinition]: SymbolType.Class,
105
- [PythonNodeKind.FunctionDefinition]: SymbolType.Function,
106
- [PythonNodeKind.AsyncFunctionDefinition]: SymbolType.Function,
107
- [PythonNodeKind.Assignment]: SymbolType.Variable,
108
- [PythonNodeKind.AnnotatedAssignment]: SymbolType.Variable,
109
- [PythonNodeKind.Parameter]: SymbolType.Variable,
110
- [PythonNodeKind.TypedParameter]: SymbolType.Variable,
111
- [PythonNodeKind.DefaultParameter]: SymbolType.Variable,
112
- [PythonNodeKind.TypedDefaultParameter]: SymbolType.Variable,
113
- [PythonNodeKind.ImportStatement]: SymbolType.Module,
114
- [PythonNodeKind.ImportFromStatement]: SymbolType.Module
115
- };
116
- /**
117
- * 控制流節點複雜度權重(用於複雜度分析)
118
- */
119
- export const COMPLEXITY_WEIGHTS = {
120
- [PythonNodeKind.IfStatement]: 1,
121
- [PythonNodeKind.ElifClause]: 1,
122
- [PythonNodeKind.ForStatement]: 1,
123
- [PythonNodeKind.AsyncForStatement]: 1,
124
- [PythonNodeKind.WhileStatement]: 1,
125
- [PythonNodeKind.TryStatement]: 1,
126
- [PythonNodeKind.ExceptClause]: 1,
127
- [PythonNodeKind.MatchStatement]: 1,
128
- [PythonNodeKind.CaseClause]: 1,
129
- [PythonNodeKind.BooleanOperator]: 1,
130
- [PythonNodeKind.ConditionalExpression]: 1,
131
- [PythonNodeKind.ListComprehension]: 1,
132
- [PythonNodeKind.DictionaryComprehension]: 1,
133
- [PythonNodeKind.SetComprehension]: 1,
134
- [PythonNodeKind.GeneratorExpression]: 1
135
- };
136
- /**
137
- * 位置轉換:tree-sitter Point → Position
138
- */
139
- export function tsPointToPosition(point, offset) {
140
- return {
141
- line: point.row,
142
- column: point.column,
143
- offset
144
- };
145
- }
146
- /**
147
- * 範圍轉換:tree-sitter Node → Range
148
- */
149
- export function tsNodeToRange(node) {
150
- return {
151
- start: tsPointToPosition(node.startPosition, node.startIndex),
152
- end: tsPointToPosition(node.endPosition, node.endIndex)
153
- };
154
- }
155
- /**
156
- * 節點類型字串轉 PythonNodeKind
157
- */
158
- export function nodeTypeToKind(type) {
159
- const kindMap = {};
160
- // 反向映射 enum
161
- for (const [key, value] of Object.entries(PythonNodeKind)) {
162
- kindMap[value] = value;
163
- }
164
- return kindMap[type] || type;
165
- }
166
- /**
167
- * 檢查路徑是否為相對導入
168
- */
169
- export function isRelativePath(path) {
170
- return path.startsWith('.');
171
- }
172
- /**
173
- * Python 保留字列表
174
- */
175
- const PYTHON_RESERVED_WORDS = new Set([
176
- // Keywords
177
- 'False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await',
178
- 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except',
179
- 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is',
180
- 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try',
181
- 'while', 'with', 'yield',
182
- // Python 3.10+ soft keywords
183
- 'match', 'case', 'type', '_'
184
- ]);
185
- /** 預編譯的 Unicode 識別符正則表達式 */
186
- const PYTHON_UNICODE_IDENTIFIER_PATTERN = /^[\p{ID_Start}_][\p{ID_Continue}]*$/u;
187
- /**
188
- * 驗證 Python 識別符名稱
189
- *
190
- * Python 3 支援 Unicode 識別符(PEP 3131):
191
- * - 第一個字元:Unicode 類別 ID_Start 或底線
192
- * - 後續字元:Unicode 類別 ID_Continue
193
- *
194
- * 範例:
195
- * - 用戶名稱 = "John" # 合法
196
- * - データ = 123 # 合法(日文)
197
- */
198
- export function isValidPythonIdentifier(name) {
199
- if (!name || name.length === 0) {
200
- return false;
201
- }
202
- return PYTHON_UNICODE_IDENTIFIER_PATTERN.test(name) && !isPythonReservedWord(name);
203
- }
204
- /**
205
- * 檢查是否為 Python 保留字
206
- */
207
- export function isPythonReservedWord(name) {
208
- return PYTHON_RESERVED_WORDS.has(name);
209
- }
210
- /**
211
- * Python 解析錯誤類別
212
- */
213
- export class PythonParseError extends Error {
214
- filePath;
215
- position;
216
- constructor(message, filePath, position) {
217
- super(message);
218
- this.filePath = filePath;
219
- this.position = position;
220
- this.name = 'PythonParseError';
221
- }
222
- }
223
- /**
224
- * 創建解析錯誤
225
- */
226
- export function createParseError(message, filePath, position) {
227
- return new PythonParseError(message, filePath, position);
228
- }
229
- /**
230
- * Python 常用內建函數(用於安全檢查)
231
- */
232
- export const DANGEROUS_FUNCTIONS = new Set([
233
- 'eval',
234
- 'exec',
235
- 'compile',
236
- '__import__',
237
- 'open',
238
- 'input'
239
- ]);
240
- /**
241
- * Python 安全性相關模組
242
- */
243
- export const SECURITY_SENSITIVE_MODULES = new Set([
244
- 'pickle',
245
- 'marshal',
246
- 'shelve',
247
- 'subprocess',
248
- 'os',
249
- 'sys',
250
- 'shutil',
251
- 'tempfile'
252
- ]);
253
- /**
254
- * PEP8 命名規範模式
255
- */
256
- export const NAMING_PATTERNS = {
257
- /** snake_case:變數、函式、方法 */
258
- snakeCase: /^[a-z][a-z0-9_]*$/,
259
- /** UPPER_SNAKE_CASE:常量 */
260
- upperSnakeCase: /^[A-Z][A-Z0-9_]*$/,
261
- /** PascalCase:類別 */
262
- pascalCase: /^[A-Z][a-zA-Z0-9]*$/,
263
- /** _private:私有成員 */
264
- privatePrefix: /^_[a-z][a-z0-9_]*$/,
265
- /** __dunder__:特殊方法 */
266
- dunderPattern: /^__[a-z][a-z0-9_]*__$/
267
- };
268
- /**
269
- * 檢查是否為測試檔案
270
- */
271
- export function isPythonTestFile(filePath) {
272
- const fileName = filePath.split('/').pop() || '';
273
- return (fileName.startsWith('test_')
274
- || fileName.endsWith('_test.py')
275
- || fileName === 'conftest.py'
276
- || filePath.includes('/tests/')
277
- || filePath.includes('/test/'));
278
- }
279
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/python/types.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- /**
2
- * Swift Dependency Analyzer
3
- * 分析 Swift 程式碼的依賴關係
4
- */
5
- import type { Dependency } from '../../shared/types/index.js';
6
- import type { SwiftAST } from '../swift/types.js';
7
- /**
8
- * Swift 依賴分析器
9
- */
10
- export declare class SwiftDependencyAnalyzer {
11
- /**
12
- * 從 AST 提取依賴關係
13
- */
14
- extractDependencies(ast: SwiftAST): Promise<Dependency[]>;
15
- /**
16
- * 從節點遞歸提取依賴
17
- */
18
- private extractDependenciesFromNode;
19
- /**
20
- * 從 import 節點提取依賴
21
- */
22
- private extractImportDependency;
23
- /**
24
- * 判斷是否為外部依賴
25
- * Swift 系統 framework 視為外部依賴
26
- */
27
- private isExternalDependency;
28
- }
29
- /**
30
- * 建立依賴分析器實例
31
- */
32
- export declare function createDependencyAnalyzer(): SwiftDependencyAnalyzer;
33
- //# sourceMappingURL=dependency-analyzer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependency-analyzer.d.ts","sourceRoot":"","sources":["../../../src/plugins/swift/dependency-analyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,yBAAyB,CAAC;AAGtE;;GAEG;AACH,qBAAa,uBAAuB;IAClC;;OAEG;IACG,mBAAmB,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAM/D;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAyBnC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiC/B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;CAmB7B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,uBAAuB,CAElE"}
@@ -1,95 +0,0 @@
1
- /**
2
- * Swift Dependency Analyzer
3
- * 分析 Swift 程式碼的依賴關係
4
- */
5
- import { DependencyType } from '../../shared/types/index.js';
6
- import { SwiftNodeKind } from '../swift/types.js';
7
- /**
8
- * Swift 依賴分析器
9
- */
10
- export class SwiftDependencyAnalyzer {
11
- /**
12
- * 從 AST 提取依賴關係
13
- */
14
- async extractDependencies(ast) {
15
- const dependencies = [];
16
- this.extractDependenciesFromNode(ast.root, ast.sourceFile, dependencies);
17
- return dependencies;
18
- }
19
- /**
20
- * 從節點遞歸提取依賴
21
- */
22
- extractDependenciesFromNode(node, filePath, dependencies) {
23
- // 處理 import 語句
24
- if (node.swiftKind === SwiftNodeKind.Import) {
25
- const dependency = this.extractImportDependency(node, filePath);
26
- if (dependency) {
27
- dependencies.push(dependency);
28
- }
29
- }
30
- // 遞歸處理子節點
31
- if (node.children) {
32
- for (const child of node.children) {
33
- this.extractDependenciesFromNode(child, filePath, dependencies);
34
- }
35
- }
36
- }
37
- /**
38
- * 從 import 節點提取依賴
39
- */
40
- extractImportDependency(node, filePath) {
41
- // 從 properties 或 source 取得 import 路徑
42
- if (node.properties?.path) {
43
- return {
44
- path: node.properties.path,
45
- type: DependencyType.Import,
46
- isRelative: false,
47
- importedSymbols: []
48
- };
49
- }
50
- // 解析 import 語句:import Foundation, import UIKit, import SwiftUI
51
- if (!node.source) {
52
- return null;
53
- }
54
- const importMatch = node.source.match(/import\s+([A-Za-z0-9_.]+)/);
55
- if (!importMatch) {
56
- return null;
57
- }
58
- const moduleName = importMatch[1];
59
- return {
60
- path: moduleName,
61
- type: DependencyType.Import,
62
- isRelative: false,
63
- importedSymbols: []
64
- };
65
- }
66
- /**
67
- * 判斷是否為外部依賴
68
- * Swift 系統 framework 視為外部依賴
69
- */
70
- isExternalDependency(moduleName) {
71
- const systemFrameworks = [
72
- 'Foundation',
73
- 'UIKit',
74
- 'SwiftUI',
75
- 'Combine',
76
- 'CoreData',
77
- 'CoreGraphics',
78
- 'CoreLocation',
79
- 'MapKit',
80
- 'AVFoundation',
81
- 'WebKit',
82
- 'Network',
83
- 'Dispatch',
84
- 'XCTest'
85
- ];
86
- return systemFrameworks.includes(moduleName);
87
- }
88
- }
89
- /**
90
- * 建立依賴分析器實例
91
- */
92
- export function createDependencyAnalyzer() {
93
- return new SwiftDependencyAnalyzer();
94
- }
95
- //# sourceMappingURL=dependency-analyzer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependency-analyzer.js","sourceRoot":"","sources":["../../../src/plugins/swift/dependency-analyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAClC;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,GAAa;QACrC,MAAM,YAAY,GAAiB,EAAE,CAAC;QACtC,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACzE,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,2BAA2B,CACjC,IAAkB,EAClB,QAAgB,EAChB,YAA0B;QAE1B,eAAe;QACf,IAAI,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAChE,IAAI,UAAU,EAAE,CAAC;gBACf,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,UAAU;QACV,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,2BAA2B,CAC9B,KAAqB,EACrB,QAAQ,EACR,YAAY,CACb,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,uBAAuB,CAC7B,IAAkB,EAClB,QAAgB;QAEhB,qCAAqC;QACrC,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;YAC1B,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAc;gBACpC,IAAI,EAAE,cAAc,CAAC,MAAM;gBAC3B,UAAU,EAAE,KAAK;gBACjB,eAAe,EAAE,EAAE;aACpB,CAAC;QACJ,CAAC;QAED,+DAA+D;QAC/D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACnE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAElC,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,cAAc,CAAC,MAAM;YAC3B,UAAU,EAAE,KAAK;YACjB,eAAe,EAAE,EAAE;SACpB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,oBAAoB,CAAC,UAAkB;QAC7C,MAAM,gBAAgB,GAAG;YACvB,YAAY;YACZ,OAAO;YACP,SAAS;YACT,SAAS;YACT,UAAU;YACV,cAAc;YACd,cAAc;YACd,QAAQ;YACR,cAAc;YACd,QAAQ;YACR,SAAS;YACT,UAAU;YACV,QAAQ;SACT,CAAC;QAEF,OAAO,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,IAAI,uBAAuB,EAAE,CAAC;AACvC,CAAC"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Swift Parser Plugin
3
- * 匯出所有 Swift Parser 相關功能
4
- */
5
- export { SwiftParser, createSwiftParser } from './parser.js';
6
- export type { SwiftAST, SwiftASTNode, SwiftSymbol, SwiftDiagnostic, SwiftCLIRequest, SwiftCLIResponse } from './types.js';
7
- export { SwiftNodeKind, SwiftAccessLevel, SwiftParseError, createSwiftASTNode, createParseError, isDeclarationNode, isTypeDeclarationNode, swiftKindToSymbolType, getNodeName, isValidIdentifier, extractModifiers, extractAttributes } from './types.js';
8
- export { SwiftSymbolExtractor, createSymbolExtractor } from './symbol-extractor.js';
9
- export { SwiftDependencyAnalyzer, createDependencyAnalyzer } from './dependency-analyzer.js';
10
- /**
11
- * 註冊 Swift Parser 到 Parser Registry
12
- */
13
- export declare function registerSwiftParser(): void;
14
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/swift/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAG7D,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAGpF,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAE7F;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Swift Parser Plugin
3
- * 匯出所有 Swift Parser 相關功能
4
- */
5
- // 主 Parser 類別
6
- export { SwiftParser, createSwiftParser } from './parser.js';
7
- export { SwiftNodeKind, SwiftAccessLevel, SwiftParseError, createSwiftASTNode, createParseError, isDeclarationNode, isTypeDeclarationNode, swiftKindToSymbolType, getNodeName, isValidIdentifier, extractModifiers, extractAttributes } from './types.js';
8
- // 符號提取器
9
- export { SwiftSymbolExtractor, createSymbolExtractor } from './symbol-extractor.js';
10
- // 依賴分析器
11
- export { SwiftDependencyAnalyzer, createDependencyAnalyzer } from './dependency-analyzer.js';
12
- /**
13
- * 註冊 Swift Parser 到 Parser Registry
14
- */
15
- export function registerSwiftParser() {
16
- // TODO: 實作註冊邏輯
17
- // 當 Parser Registry 準備好時,這裡會註冊 SwiftParser
18
- }
19
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/swift/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc;AACd,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAY7D,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,QAAQ;AACR,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEpF,QAAQ;AACR,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAE7F;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,eAAe;IACf,2CAA2C;AAC7C,CAAC"}
@@ -1,164 +0,0 @@
1
- /**
2
- * Swift Parser 主要實作
3
- * 實作 ParserPlugin 介面
4
- */
5
- import { ParserPlugin, CodeEdit, Definition, Usage, ValidationResult } from '../../infrastructure/parser/index.js';
6
- import type { AST, Symbol, Reference, Dependency, Position, Range } from '../../shared/types/index.js';
7
- import type { UnusedCode, ComplexityMetrics, CodeFragment, PatternMatch, TypeSafetyIssue, ErrorHandlingIssue, SecurityIssue, NamingIssue } from '../../infrastructure/parser/analysis-types.js';
8
- /**
9
- * Swift Parser 實作
10
- */
11
- export declare class SwiftParser implements ParserPlugin {
12
- readonly name = "swift";
13
- readonly version = "1.0.0";
14
- readonly supportedExtensions: readonly [".swift"];
15
- readonly supportedLanguages: readonly ["swift"];
16
- private symbolExtractor;
17
- private dependencyAnalyzer;
18
- private cliPath;
19
- constructor(cliPath?: string);
20
- /**
21
- * 解析 Swift 程式碼
22
- */
23
- parse(code: string, filePath: string): Promise<AST>;
24
- /**
25
- * 解析 Swift CLI Bridge 路徑
26
- */
27
- private resolveCliPath;
28
- /**
29
- * 轉換 CLI Bridge 節點為 AST 節點
30
- */
31
- private convertCLINodeToASTNode;
32
- /**
33
- * 節點類型轉換為 SwiftNodeKind
34
- */
35
- private nodeTypeToSwiftKind;
36
- /**
37
- * 從節點提取屬性(@Published, @State 等)
38
- */
39
- private extractAttributes;
40
- /**
41
- * 從節點提取修飾符(public, private 等)
42
- */
43
- private extractModifiers;
44
- /**
45
- * 提取符號
46
- */
47
- extractSymbols(ast: AST): Promise<Symbol[]>;
48
- /**
49
- * 查找符號引用
50
- * 在當前 AST 中查找所有對指定符號的引用
51
- */
52
- findReferences(ast: AST, symbol: Symbol): Promise<Reference[]>;
53
- /**
54
- * 提取依賴關係
55
- */
56
- extractDependencies(ast: AST): Promise<Dependency[]>;
57
- /**
58
- * 重新命名符號
59
- */
60
- rename(ast: AST, position: Position, newName: string): Promise<CodeEdit[]>;
61
- /**
62
- * 提取函式重構
63
- */
64
- extractFunction(_ast: AST, _selection: Range): Promise<CodeEdit[]>;
65
- /**
66
- * 查找定義
67
- */
68
- findDefinition(ast: AST, position: Position): Promise<Definition | null>;
69
- /**
70
- * 查找使用位置
71
- */
72
- findUsages(ast: AST, symbol: Symbol): Promise<Usage[]>;
73
- /**
74
- * 驗證插件狀態
75
- */
76
- validate(): Promise<ValidationResult>;
77
- /**
78
- * 清理資源
79
- */
80
- dispose(): Promise<void>;
81
- /**
82
- * 檢測未使用的符號
83
- */
84
- detectUnusedSymbols(ast: AST, allSymbols: Symbol[]): Promise<UnusedCode[]>;
85
- /**
86
- * 分析程式碼複雜度
87
- */
88
- analyzeComplexity(code: string, _ast: AST): Promise<ComplexityMetrics>;
89
- /**
90
- * 提取程式碼片段(用於重複代碼檢測)
91
- */
92
- extractCodeFragments(code: string, filePath: string): Promise<CodeFragment[]>;
93
- /**
94
- * 檢測樣板模式
95
- */
96
- detectPatterns(_code: string, _ast: AST): Promise<PatternMatch[]>;
97
- /**
98
- * 檢查型別安全問題
99
- */
100
- checkTypeSafety(code: string, ast: AST): Promise<TypeSafetyIssue[]>;
101
- /**
102
- * 檢查錯誤處理問題
103
- */
104
- checkErrorHandling(code: string, ast: AST): Promise<ErrorHandlingIssue[]>;
105
- /**
106
- * 檢查安全性問題
107
- */
108
- checkSecurity(code: string, ast: AST): Promise<SecurityIssue[]>;
109
- /**
110
- * 檢查命名規範問題
111
- */
112
- checkNamingConventions(symbols: Symbol[], filePath: string): Promise<NamingIssue[]>;
113
- /**
114
- * 判斷檔案是否為測試檔案
115
- */
116
- isTestFile(filePath: string): boolean;
117
- /**
118
- * 獲取 Swift 特定的排除模式
119
- */
120
- getDefaultExcludePatterns(): string[];
121
- /**
122
- * 判斷是否應該忽略特定檔案
123
- */
124
- shouldIgnoreFile(filePath: string): boolean;
125
- /**
126
- * 判斷符號是否為抽象宣告
127
- */
128
- isAbstractDeclaration(symbol: Symbol): boolean;
129
- private validateInput;
130
- private validateRenameInput;
131
- /**
132
- * 模擬解析(實際需要呼叫 CLI Bridge)
133
- */
134
- private mockParse;
135
- /**
136
- * 在節點中遞歸查找引用
137
- */
138
- private findReferencesInNode;
139
- /**
140
- * 判斷引用類型
141
- */
142
- private getReferenceType;
143
- /**
144
- * 逸出正則表達式特殊字符
145
- */
146
- private escapeRegex;
147
- /**
148
- * 查找指定位置的符號
149
- */
150
- private findSymbolAtPosition;
151
- /**
152
- * 計算圈複雜度
153
- */
154
- private calculateCyclomaticComplexity;
155
- /**
156
- * SymbolType 轉換為 DefinitionKind
157
- */
158
- private symbolTypeToDefinitionKind;
159
- }
160
- /**
161
- * 建立 Swift Parser 實例
162
- */
163
- export declare function createSwiftParser(cliPath?: string): SwiftParser;
164
- //# sourceMappingURL=parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/plugins/swift/parser.ts"],"names":[],"mappings":"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"}